问题
最近使用nuitka打包自己写的程序,双击打开,但是numpy+mkl和scipy相关的库报错了,信息如下:
\scipy\linalg\blas.py", line 213, in <module>
from scipy.linalg import _fblas
ImportError: DLL load failed while importing _fblas: 找不到指定的模块。
使用anaconda的xxx环境用CMD打开就没有问题,结合其他博主的方法,发现是程序调用了一些dll文件,但是没有复制到.exe所在文件夹内,由于我使用虚拟环境的python打包,所以dll文件位置如下:
F:\Anaconda3\envs\xxx\Library\bin
解决方案
把使用的dll全部复制到**.exe所在文件夹**内
mkl_xxx.dll和libiomp5md.dll是和numpy+mkl相关的,所以只复制了这些
其他
简单测试了下使用nuitka比pyinstaller打包更快,打开也更快,或许由于加入dll的原因,体积要更大一些