用pyinstaller 打包程序碰到的问题和解决方法(scipy...)
一、打包程序库选择
-
py2exe. 不支持python3
-
cx_Freeze. 现在只更新到python3.3
-
pyinstaller. 支持python2、python3所有版本
因为现在使用的版本是python3.6,所以没得选择,只能使用pyinstaller。另外百度了一圈,pyinstaller还是比较好用的。
二、安装和使用
用pip安装就可以了。
pip install pyinstaller
没有提示任何出错信息,没啥好写的。
基本使用方法:
pyinstaller -F XXXX.py
cd命令跳转至程序目录,XXXX.py是要打包的主文件,其他引用文件会一起打包。
pyinstaller -F -w -i XXXX.ico XXXX.py
-w选项不带命令行窗口,-i选项是程序图标。
三、出现的问题
用上面的命令打包,过程比较顺利,也显示以下结果信息。
但是运行打包好的程序时,出现以下错误信息:
ImportError: DLL load failed: 找不到指定的模块。
[6772] Failed to execute script calc_similar_gui错误。
对以上错误信息进行分析,发现是scipy里的一些模块找不到。
又分析打包时出现的一些警告,
参考网上的解决方法把/lib/site-packages/scipy/extra-dll/ 的所有.dll复制到要打包的目录下。
然后重新打包,发现WARNING提示信息已消失。
运行重新打包的.exe程序,结果又出现新的错误信息:
ModuleNotFoundError: No module named 'scipy._lib.messagestream'
[6656] Failed to execute script calc_similar_gui
结合ImportError when importing certain modules from SciPY这个问题的解决方法在/scipy/init.py文件的底部添加
from scipy._lib import messagestream
继续打包,终于成功,所有问题全部解决。
四、附录
python版本3.6.6
scipy版本1.1.0
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)