PyInstaller编译exe遇NumPy DLL加载失败问题求助
解决PyInstaller打包exe后NumPy _multiarray_umath DLL加载失败问题
手动复制NumPy依赖DLL
找到本地Python环境里Lib\site-packages\numpy\.libs文件夹,把里面所有文件复制到exe所在的dist目录,和exe放在同一层。这个文件夹里藏着NumPy运行必需的底层DLL,PyInstaller经常漏打包这些文件。用
--collect-all参数强制收集依赖
打包时直接用这个命令:pyinstaller --collect-all numpy --collect-all opencv-python 你的脚本文件名.py,强制PyInstaller把NumPy和OpenCV的所有关联文件都打包进去,包括那些自动检测不到的DLL。修改spec文件手动添加DLL路径
- 先生成spec文件:
pyinstaller 你的脚本文件名.py --name 你的应用名 - 打开生成的
.spec文件,在datas列表里添加NumPy的.libs路径,示例:datas = [ (r"C:\你的Python路径\Lib\site-packages\numpy\.libs", "numpy\.libs") ] - 用spec文件重新打包:
pyinstaller 你的应用名.spec
- 先生成spec文件:
用干净虚拟环境打包
- 创建虚拟环境:
python -m venv venv - 激活环境(Windows:
venv\Scripts\activate;Linux/macOS:source venv/bin/activate) - 只装需要的库:
pip install numpy opencv-python pyinstaller - 再打包脚本,避免原有环境里的冗余依赖搞出问题
- 创建虚拟环境:
检查VC运行库
安装和你Python版本匹配的Microsoft Visual C Redistributable(比如Python 3.8及以上一般需要2019或2022版),NumPy的部分DLL依赖这个运行库,缺失会导致加载失败。
内容的提问来源于stack exchange,提问作者GGTEC
相关产品推荐
相关产品推荐

