SWIG 4.0.2 Windows安装与C/C++到Python绑定实战
简介swig-4.0.2-windows版本安装包是SWIG 4.0.2针对Windows平台的预编译发行包面向需要为C/C库生成Python、Java、Go、Ruby等语言接口的开发者。解压后将swigwin路径加入PATH即可在命令行调用swig配合.i接口文件自动生成目标语言绑定代码。包内含约2000个文件以.i接口模板、.swg规则文件、.h/.c/.cxx源码为主同时提供Python、Java、Go、Lua等语言的生成结果与测试脚本以及makefile、工程配置文件和安装说明便于查看完整绑定流程。资源包约11.07MB已有1604人学习下载。相比源码编译这份Windows预编译版本免去本地构建环节适合希望快速上手SWIG或需要多语言绑定的中高级C/C开发者使用。1. SWIG 4.0.2 Windows 安装包到底是什么绿色版和源码版先分清做 C 和 C 库的 Python 绑定是件绕不开的事SWIG 4.0.2 Windows 安装包在 2020 年那个阶段几乎是唯一一个“下载就能用”的选择。SWIG 本身的定位不是编译器而是代码生成器你给我一个接口文件它替你生成 C/C 包装源码和 Python、Java、C# 等目标语言的模块代码。换句话说你装的是生成器不是能把 .i 文件直接跑成 .pyd 的“全自动工具”。Windows 上的安装包一般有两种形态swigwin-4.0.2.zip 是绿色解压版自带 swig.exe解压即用swig-4.0.2.tar.gz 是源码包需要你用 MinGW 或 Visual Studio 自己编译。多数人的需求只是生成绑定代码所以绿色版是性价比最高的选择。而“源码包”听起来更有掌控力实际它主要留给需要定制 SWIG 内部行为、或要在非 x86 平台上部署的人。还有个反直觉的点SWIG 的版本号并不决定最终扩展能不能跑起来。真正决定成败的是你机器上的 C 编译器、目标 Python 版本以及 SWIG 生成的包装代码是否适配这套组合。4.0.2 在 Windows 上能正常生成代码但如果 Python 版本太新第三步编译时仍可能翻车。这篇文章就把安装、验证、最小绑定和避坑一次讲透适合正在维护老 C 库、又把算法层暴露给 Python 的桌面端和嵌入式开发。2. 在 Windows 上装 SWIG 4.0.2下载、解压与 PATH 配置2.1 swigwin 绿色版与源码版怎么选先看清两个包的区别SWIG 官方发布页在 4.0.2 时同时提供两类压缩包一类是 swigwin-4.0.2.zip另一类是 swig-4.0.2.tar.gz。很多人会习惯性下载 tar.gz因为它是源码包名字更“官方”可到了 Windows 上就是给自己找麻烦。tar 格式本身在 Windows 下解压容易遇到长路径、权限和符号链接问题就算解压出来你还要准备一整套 MSVC 或 MinGW 的构建环境然后自己 configure、make折腾一圈只为得到一个 swig.exe。包名内容是否需要编译适合谁swigwin-4.0.2.zip预编译的 swig.exe 和运行所需文件不需要绝大多数 Windows 开发者swig-4.0.2.tar.gzSWIG 的 C 源码、测试用例和构建脚本需要要改 SWIG 内部、或目标平台特殊的人我一般建议把它看作“绿色软件”而不是“安装包”。zip 解压后没有写入注册表、没有开始菜单快捷方式也不需要管理员权限。这也意味着删除时只要删目录非常干净。如果你电脑上已经有 4.0.1 甚至 3.x 的 swig.exe升级成 4.0.2 时直接替换目录路径就行旧接口文件不需要重写。唯一要留意的是不要把 SWIG 当运行时依赖放进每个项目里它是构建时工具应该固定在某个统一目录比如 C:\swig。2.2 手动安装的四个步骤解压、加 PATH、刷新、验证SWIG 官方没有提供 exe 安装向导所以安装过程就是解压和配置环境变量。放在 C:\swig 而不是 C:\Program Files 是刻意的Program Files 目录下创建文件会被 UAC 限制后续你用脚本去写 swig 的配置文件或做自动集成时会莫名被系统拦一道。把 SWIG 安装在用户可控的目录能省下不少权限带来的血泪经验。# 1. 解压到 C:\swig注意 final 目录是 C:\swig\swigwin-4.0.2 Expand-Archive -Path $env:USERPROFILE\Downloads\swigwin-4.0.2.zip -DestinationPath C:\swig # 2. 把 swig 所在目录追加到用户级 PATH注意是追加不是覆盖 [Environment]::SetEnvironmentVariable( Path, [Environment]::GetEnvironmentVariable(Path, User) ;C:\swig\swigwin-4.0.2, User ) # 3. 刷新当前 PowerShell 会话的 PATH $env:Path [Environment]::GetEnvironmentVariable(Path, User) # 4. 验证版本 swig -version这段逻辑里有两个值得注意的参数。第一个是 Expand-Archive 的 -DestinationPath设置成 C:\swig 后zip 内自带的 swigwin-4.0.2 目录会被完整释放最终 swig.exe 的完整路径是 C:\swig\swigwin-4.0.2\swig.exe。第二个是 SetEnvironmentVariable 的第三个参数 User它把变量写进当前用户的环境变量不需要管理员窗口也不影响其他用户。最关键的是在追加前先读一次旧值否则多次运行脚本会出现 PATH 里塞满一串重复路径。如果你用的是 Windows 7 或更老系统PowerShell 里没有 Expand-Archive可以直接右键用资源管理器解压或者用 7-Zip。解压完成后同样执行第 2 步到第 4 步。这里还有一个容易被忽略的点PowerShell 的当前会话不会自动感知新写入的用户级环境变量必须用$env:Path ...手动刷新一次或者干脆关掉终端重开。网上很多人做完安装后输入 swig 提示无法识别九成是卡在这一步。2.3 验证安装版本号和一次真实的生成测试swig -version是最直接的验证方式输出第一行是 SWIG Version 4.0.2后面还会带一个配置信息说明这个二进制在构建时启用了哪些语言模块。很多文章写到这里就结束了但版本号只能证明 exe 能运行不能证明 Python 模块相关的文件是完整的。SWIG 的绿色版理论上包含所有目标语言支持可一旦包不完整或被杀毒软件隔离了部分文件版本号照常显示生成时才报错。我在新机器上会把验证做得更彻底一些让 SWIG 为一个只有一个空模块的接口文件跑一次。这个测试能在 5 秒内确认 SWIG 的 Python 输出链路是否正常。Set-Content test.i %module test swig -python -I. test.i Get-ChildItem test.py, test_wrap.c这段命令会生成 test.py 和 test_wrap.c 两个文件。能从命令行跑通说明 PATH 没问题、Python 模块支持正常、当前目录的写入权限也没问题。如果 test.py 没有生成而 swig -version 正常那基本可以判定安装包被削弱过或者你用错了架构版本。建议确认一下系统是 64 位还是 32 位SWIG 的 Windows 包是按 x64 和 x86 分开打包的混用会导致运行时异常。验证完建议立刻把 test.i 和生成的文件删掉给项目目录留一个干净起点。我自己习惯保留一个swig_smoke_test.ps1脚本放在工具目录里每次装完 SWIG 就执行一次。这个动作花费半分钟但能避免项目开搞到一半才发现工具链基础不稳到时候再排查成本远高于这半分钟。3. 用 SWIG 4.0.2 跑通一个 C 到 Python 的绑定最小示例与必要参数3.1 接口文件三段式module、头文件声明和 %include 各管什么SWIG 的输入是一个接口文件通常以 .i 结尾。这个文件不是普通 C/C 源码而是一份“声明清单”告诉 SWIG 哪些类型和函数要被暴露给目标语言。初次用的人常犯的错误是直接把 .h 文件塞给 SWIG 去解析其实 SWIG 有自己的语法需要你明确指定模块名、包含声明和解析对象。一个最小 C 接口文件由三部分组成。// example.h int add(int a, int b); int sub(int a, int b);// example.c #include example.h int add(int a, int b) { return a b; } int sub(int a, int b) { return a - b; }// example.i %module example %{ #include example.h %} %include example.h在这个接口文件里%module example定义了生成的 Python 模块名也就是最终import example时的名字。%{ ... %}里的内容会被 SWIG 原样拷贝到生成的 example_wrap.c 顶部作用是让包装源码在编译时能看到 example.h 里的函数声明。最后一个%include example.h是核心指令它让 SWIG 真正解析 example.h并为里面的函数生成包装代码。注意%{ ... %}和%include看起来都提到了头文件作用完全不同。前者只是“转发给 C 编译器”SWIG 不解析这些头文件后者才是 SWIG 自己读的源码。把两者分清楚遇到“找不到声明”和“找不到头文件”两类报错时就能快速定位。这个例子只暴露了两个 C 函数如果改成 C 类接口文件写法会更复杂但三段式骨架不变。3.2 执行 swig -python 的最小命令参数说明与生成产物接口文件写好后进入命令行执行 SWIG。我一般会在项目根目录下执行让生成的文件直接落到当前目录方便公开代码审查。4.0.2 版本里生成 Python 绑定的命令是这样的swig -python -I. example.i参数-python指定目标语言为 Python-I.告诉 SWIG 在当前目录搜索头文件。-I.看起来多余但新手经常会漏掉SWIG 解析 example.i 时%include的头文件搜索路径并不默认包含接口文件所在目录所有环境下的通用做法都是显式加上-I.。如果你把头文件放在 include 子目录就要写成-Iinclude。执行成功后当前目录会多出两个文件example.py 和 example_wrap.c。example.py 是纯 Python 部分提供模块的对外接口也负责加载底层的 C 扩展example_wrap.c 是核心里面是 C 语言写的包装代码负责把 Python 调用转换成对 add 和 sub 的调用。如果你希望生成的 example.py 放在子目录可以加-outdir ./generated参数如果你有多个头文件分布在多个目录就写多个-I参数。还有一组容易被忽略的开关当你处理的是 C 源码时接口文件里只要出现 class、模板或命名空间执行时就必须加-c否则 SWIG 会按 C 语法报一堆“未知标识符”错误。C 项目不用加C 项目必须加这是 4.0.2 时代最常见的翻车点。生成了这两个文件不等于模块能运行还得进入下一步编译。3.3 把生成的 wrap 文件编译成扩展setuptools 方案SWIG 只负责生成代码不负责编译。要让 Python 能import example你需要把 example_wrap.c 和 example.c 一起编译成一个_example.pyd。Windows 下手动用 gcc 调 Python 的 include 和 lib 目录既繁琐又容易错我一般直接用 setuptools 的 Extension 机制它负责探测当前 Python 的头文件和库路径并把编译参数传给本机工具链。# setup.py from setuptools import setup, Extension module Extension( _example, sources[example.c, example_wrap.c], include_dirs[.], ) setup( nameexample, ext_modules[module], py_modules[example], )这里的 Extension 名字必须叫_example下划线开头不是命名风格而是 SWIG 的约定example.py 内部会去寻找_example.pyd。sources 里要把原始 C 文件和 SWIG 生成的 wrap 文件都写上少一个都会编译失败。include_dirs 指定头文件搜索路径和前面swig -I.保持一致。py_modules 是为了让 setuptools 打包时把 example.py 一并收录。写好 setup.py 后执行构建命令python setup.py build_ext --inplacebuild_ext是 setuptools 提供的扩展构建子命令--inplace的意思是构建完成后直接把_example.pyd放在当前目录而不是丢到 build 子目录。编译成功后做一次导入测试# smoke_test.py import example print(example.add(2, 3)) print(example.sub(5, 2))运行python smoke_test.py如果输出 5 和 3说明这条链路完全打通SWIG 4.0.2 在 Windows 上生成的包装代码、setuptools 的编译配置、Python 的导入逻辑全部正常。如果编译阶段报错优先查编译器版本而不是查 SWIG。函数体本身是 C编译器不认 SWIG 生成代码的情况很少见更多是缺少 Visual Studio Build Tools 或 Python 开发头文件。4. SWIG 4.0.2 Windows 装机避坑5 个常见问题与排查4.1 PATH 和启动相关的两个坑命令找不到和闪退现象一在 PowerShell 里输入swig -version系统提示“无法将 swig 项识别为 cmdlet、函数、脚本文件或可运行程序的名称”。这是典型的 PATH 未生效。原因大多是安装后没有刷新当前会话或者环境变量被写进了 Machine 而不是 User。解决办法是执行$env:Path [Environment]::GetEnvironmentVariable(Path, User)刷新会话然后重开终端。如果重开后仍然找不到检查C:\swig\swigwin-4.0.2\swig.exe是否存在有时解压工具会自动多套一层目录导致真实路径是C:\swig\swigwin-4.0.2\swigwin-4.0.2\swig.exe。现象二在资源管理器里直接双击 swig.exe窗口一闪而过什么也没发生。这不是安装坏了而是 SWIG 本身是命令行工具双击等于运行一个没有输出重定向的控制台程序窗口自然秒关。要验证能否启动得在 cmd 或 PowerShell 里运行。真正需要警惕的是另一种闪退在命令行里运行时提示 0xc000007b 或“应用程序无法正常启动”。这个报错通常说明 exe 依赖的本地 DLL 与系统位数不匹配或缺少 VC 运行库。解决方向是先装 Visual C Redistributable 2015-2022再确认你的 SWIG 包是 x64 还是 x86官方发布的 swigwin 包里一般已经带上运行时但如果包是从第三方渠道下载的就可能出这种问题。4.2 头文件路径与编译工具链两个高频报错现象三执行swig -python example.i时提示example.h: No such file or directory。原因不是 example.h 不存在而是 SWIG 在当前工作目录找不到它。SWIG 对%include的头文件搜索路径比编译器严格默认不追加接口文件所在目录。解决方式是在命令中显式写明-I.或把头文件路径完整写进接口文件。如果你用的是 CMake对应写成swig_add_library里的INCLUDE_DIRS参数。更隐蔽的情况是头文件在中文路径下SWIG 4.0.2 在部分中文 Windows 系统上解析路径会出怪问题号称玄学也不过分最简单的规避方法是把整个项目放在全英文路径下。现象四执行python setup.py build_ext --inplace时报error: Microsoft Visual C 14.0 is required。这个报错几乎每个用 Windows 做 Python 扩展的人都见过。原因不是 setuptools 找不到 SWIG而是系统里没有 C/C 编译器。SWIG 生成的 example_wrap.c 是真实 C 代码必须经过编译器生成 .pyd。解决方案是安装 Visual Studio Build Tools在安装器里勾选“使用 C 的桌面开发”工作负载安装完成后重启终端。如果你更倾向 MinGW-w64setuptools 也能用但需要手动指定编译器并且 Python 官方预编译的扩展很多是用 MSVC 构建的MinGW 链接时可能要对齐 lib 文件难度更高新手不建议走这条线。4.3 老版本和 Python 新版本兼容的一个趋势性提醒现象五在 Python 3.11、3.12 上编译 SWIG 4.0.2 生成的包装代码时编译器抛出一堆 DeprecationWarning甚至直接报PyEval_CallObject、Py_TYPE相关错误。原因要从时间线看4.0.2 发布时主流 Python 还是 3.7/3.8生成的代码用的是当时稳的 C API 写法。近几年 Python 对 C API 的结构体初始化和调用约定收紧老代码确实可能编译不过。解决思路取决于项目状态。如果是在维护已有的老接口文件不能换 SWIG 大版本我的做法是锁定 Python 到 3.9 或 3.10并在 README 里写明“本模块只支持 Python X.Y”。如果是新项目直接升级到 SWIG 4.1 或 4.2它们对新版 Python 的兼容性好得多接口文件基本不用重写。这里也解释了一个实践问题为什么我会在文章开头强调“安装包只是第一步”的论调。SWIG 4.0.2 的 Windows 包本身没问题但你在 Python 生态里是跟版本赛跑版本组合不匹配时问题多半不在安装包而在整条工具链。5. 进阶把 SWIG 4.0.2 的路径和验证固化到构建脚本既然 SWIG 是构建时工具最怕的事情就是每个同事机器上装的位置不一样、版本不一样。我习惯在项目里放一个tools/init-swig.ps1脚本把“检查 SWIG 路径、执行生成、检查产物”三步固化下来新机器克隆代码后跑一遍就能进入开发状态。脚本同时避免直接依赖 PATH 里的默认 swig因为 PATH 里可能混着 3.x 或 4.1 的版本生成的代码会有细微差异。param( [string]$SwigHome C:\swig\swigwin-4.0.2 ) $swig Join-Path $SwigHome swig.exe if (-not (Test-Path $swig)) { Write-Host SWIG not found at $swig, please install swigwin-4.0.2 first. exit 1 } $swig -python -c -Iinclude -outdir generated interface/example.i if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } if (-not (Test-Path generated\example.py)) { Write-Host SWIG generation failed but exit code was zero. exit 2 }这个脚本里刻意写死了-c参数即使当前项目是纯 C显式声明也便于后续添加 C 类时不会漏改参数。-outdir generated让 SWIG 生成的 example.py 和 example_wrap.c 都落到一个独立目录这样git status能一眼看出哪些文件是生成产物哪些是手写源码。检查 example.py 而不是 example_wrap.c 也有讲究wrap 文件只要 SWIG 正常运行就会生成example.py 更是模块入口层万一生成器被中断py 文件缺失最容易暴露问题。另一个值得养成习惯的是把 SWIG_HOME 写进项目的环境配置里而不是直接修改全局 PATH。你可以在.envrc或构建脚本里定义$env:SWIG_HOME C:\swig\swigwin-4.0.2后面所有构建命令都引用这个变量。这样升级 SWIG 小版本时只需要改一处生成代码和构建缓存不会因为系统 PATH 变化被意外触发重新生成。我以前图省事直接把 swig.exe 拷进项目根目录后来同事的机器路径乱了升级大版本后又因为生成的包装代码变化排查了一下午。老实的使用方式是固定小版本、用绝对路径调用把核心命令写进可复现的脚本而不是靠记忆。这套习惯能帮你走得更稳希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Visual C++习题7-12深度拆解:MFC文档视图与鼠标交互绘图实战

Visual C++习题7-12深度拆解:MFC文档视图与鼠标交互绘图实战

1. 从一道课本习题说起:为什么值得认真拆解1.1 这道习题到底在练什么看到“Visual C——黄维通《Visual C面向对象与可视化程序设计》——习题7-12”这个标题,很多人第一反应是:不就是课本上一道课后题吗,有什么好讲的。但我实际把…

2026/10/13 6:07:41 阅读更多 →
VS2013中用C++和jsoncpp解析JSON文件:配置、读取与避坑指南

VS2013中用C++和jsoncpp解析JSON文件:配置、读取与避坑指南

简介:面向Visual Studio 2013环境下的C开发者,这份资源演示了如何集成jsoncpp库并完成JSON文件的读取与解析。内容涵盖库的配置方式、工程搭建要点以及一个可运行的解析示例,适合需要在C项目中引入JSON处理能力的初中级开发者参考。压缩包共3…

2026/10/13 6:07:41 阅读更多 →
Python tkinter实战:打造桌面悬浮时钟,掌握窗口置顶与刷新机制

Python tkinter实战:打造桌面悬浮时钟,掌握窗口置顶与刷新机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 6:07:41 阅读更多 →

最新新闻

机器学习评估体系:从泛化误差到业务指标的完整实践

机器学习评估体系:从泛化误差到业务指标的完整实践

1. 这不是背书,是建模前的“体检清单”——为什么第2章决定你80%的模型成败“西瓜书”第二章《模型的评估与选择》,表面看是教你怎么算准确率、画个ROC曲线、调个交叉验证的k值,但实操中我带过几十个刚入门的项目组,发现一个扎心事…

2026/10/13 9:41:42 阅读更多 →
矩阵实编码遗传算法在电力系统机组组合优化中的应用

矩阵实编码遗传算法在电力系统机组组合优化中的应用

## 1. 项目背景与核心价值机组组合问题(Unit Commitment, UC)是电力系统调度中的经典优化难题,需要在满足负荷需求的前提下,确定各发电机组的启停状态和出力分配,使总运行成本最小化。传统数学规划方法(如混…

2026/10/13 9:41:42 阅读更多 →
电信机顶盒E900V22D硬件解析与性能优化指南

电信机顶盒E900V22D硬件解析与性能优化指南

1. 电信机顶盒E900V22D硬件解析作为一款主流运营商定制设备,E900V22D机顶盒的硬件架构直接决定了其性能表现和功能边界。拆解实机可见,这款设备采用高度集成化的主板设计,PCB板尺寸仅为128cm,却承载了完整的媒体处理功能模块。1.1…

2026/10/13 9:41:42 阅读更多 →
SQL中AVG()的四大陷阱:NULL、0值、粒度与语义

SQL中AVG()的四大陷阱:NULL、0值、粒度与语义

1. 项目概述:平均值不是“除一下”就完事的——SQL里最常被低估的统计陷阱“怎么算平均值?”刚接触SQL的新手常以为就是AVG()函数一贴,结果跑出来数据和Excel对不上,或者业务方突然质疑:“上个月人均消费3800&#xff…

2026/10/13 9:41:42 阅读更多 →
智慧港口整体解决方案:码头流程再造与自动化落地实战

智慧港口整体解决方案:码头流程再造与自动化落地实战

简介:《智慧港口整体解决方案》是一份面向港口管理部门、航运企业及智慧交通领域从业者的专题方案文档,聚焦如何借助新一代感知、传输与应用技术,实现对码头、船舶、货物、重大危险源及航管航运等要素的全面感知、有效传输与按需定制服务。方…

2026/10/13 9:41:42 阅读更多 →
艾里函数:临界过渡建模的核心数学工具

艾里函数:临界过渡建模的核心数学工具

1. 为什么艾里函数不是“空气里的函数”,而是物理建模的隐形骨架很多人第一次看到“Airy函数”这个名字,下意识会联想到“airy”(空气的、轻盈的),甚至以为是某种和气流或浮力相关的数学工具。我刚接触这个概念时也这么…

2026/10/13 9:40:38 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →