使用pyinstaller库打包python程序为exe的过程和问题解决
安装
pip install -i https:
打包成exe
pyinstaller -D -w mainV13_n.py ImageProcessing.py DataProcessing.py settingGUIV4.py SxccdCall.py --add-data "camera.jpg;." --add-data "setting.bin;." --add-data "transpose_matrix.txt;." --add-data "SxUSB.dll;." --add-data "test.png;."
- 参数
-D
:创建一个包含可执行文件的单文件夹捆绑包 - 参数
-w
:不显示控制台窗口,GUI可视化程序需要此项(比如我的程序有UI界面) - 参数
-i
:后跟图标(如:-i "resources\logo.ico"
) .py
文件:第一个为主程序,后面为多文件形式--add-data
:添加资源文件,比如:我需要调用dll
文件,那么会在这里加上(Windows使用;分号,大多数Unix使用:冒号,注意后面还有一个.点)- 生成的可执行文件在
dist
文件夹内
遇到的问题:
- 问题描述:
pyinstaller打包错误:ERROR: recursion is detected during loading of “cv2“ binary extensions.
- 问题原因:使用了
cv2
这个库,pyinstaller
和cv2
的库的版本不匹配 - 解决办法:调整两个库的版本为:
pyintaller=4.7
,opencv-python=4.5.3.56