You need to enable JavaScript to run this app. PyInstaller打包含spaCy、PyTorch项目报WinError 126找不到dll如何解决
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包含spaCy、PyTorch项目报WinError 126找不到dll如何解决

PyInstaller打包PyTorch+spaCy项目失败解决方案

方案1:手动指定PyTorch二进制依赖路径

打包时通过--add-binary参数强制将conda环境中torch的lib目录全部打包到生成文件中,Windows下命令示例:

# onefile模式
pyinstaller --onefile --add-binary "C:\Users\Simone\anaconda3\envs\deep_learning2\Lib\site-packages\torch\lib\*;torch/lib" vocal_menu.py
# onedir模式
pyinstaller --onedir --add-binary "C:\Users\Simone\anaconda3\envs\deep_learning2\Lib\site-packages\torch\lib\*;torch/lib" vocal_menu.py

如果自定义spaCy模型也没有被正确打包,可以额外添加参数:--add-data "你的模型本地目录/*;spacy_custom_model/",代码中加载模型时改为读取对应相对路径即可。

方案2:切换CPU版本依赖规避GPU库缺失问题

你报错的caffe2_detectron_ops_gpu.dll是GPU版PyTorch专属文件,若打包后的exe不需要GPU运算能力,可直接在环境中安装CPU版PyTorch,打包时额外排除不需要的CUDA、torchvision、torchaudio依赖:

pyinstaller --onefile --exclude-module torchvision --exclude-module torchaudio --exclude-module cudatoolkit vocal_menu.py

该方案还能大幅降低打包后文件的体积,避免多余GPU依赖导致的路径错误。

方案3:修复onefile模式重复文件冲突

onefile模式下的_C.cp38-win_amd64.pyd重复警告属于PyInstaller已知兼容bug,打包时添加如下参数即可解决:

pyinstaller --onefile --collect-submodules torch --exclude-module torch._C --add-binary "C:\Users\Simone\anaconda3\envs\deep_learning2\Lib\site-packages\torch\lib\*;torch/lib" vocal_menu.py

方案4:换用venv虚拟环境打包

conda环境的库路径结构特殊,PyInstaller经常无法正确识别conda安装的二进制依赖,不需要拆分两个环境,可新建原生Python的venv虚拟环境,所有依赖全部用pip安装后再执行打包操作,依赖识别成功率远高于conda环境。

方案5:替换spaCy后端避免依赖冲突

若你的spaCy自定义模型不需要用到PyTorch作为推理后端,可安装CPU专属版本的spaCy,切断spaCy对PyTorch的依赖:

pip install spacy[cpu]

安装完成后再执行打包即可规避两个库共存导致的识别问题。


内容的提问来源于stack exchange,提问作者Simone De Bellis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 11:48:02