1. 使用 pip 下载打包工具:
# pip install pywin32
# pip install pyinstaller
2. 在桌面新建文件夹 python-package:
拷贝打包文件, 如图:
ImgToObj.py 需要打包的Python文件
cv2 使用到的 OpenCV 包, 在 Python安装目录/Lib/site-packages/ 下找到 cv2
numpy 使用到的 numpy 包, 在 Python安装目录/Lib/site-packages/ 下找到 numpy
exe_icon.ico 打包出来exe文件使用的图标
3. 打包
# pyinstaller -F -i exe_icon.ico ImgToObj.py 带图标
# pyinstaller -F ImgToObj.py 不带图标
可选参数:
-F 生成单个可执行文件
-w 去掉控制台窗口,这在GUI界面时非常有用。打包调试的时候可以去掉此参数, 用于打包BUG调试。不然什么错都不知道。
-p 你自己自定义需要加载的类路径,一般情况下用不到
-i 可执行文件的图标
4. 打包完成:
打包完成!!!
打包多文件 使用 --hidden-import 参数.
pyinstaller -w -F -i SystemConfig.ico __init__.py --hidden-import ConfigLoader.py --hidden-import ConfigPage.py
注意: 文件必须在同一目录. 且是根目录, 现在还不了解怎么打包多目录的项目.
打包QT项目时, 遇到
ImportError: unable to find Qt5Core.dll on PATH
错误, 解决方法:
import sys
import os
if hasattr(sys, 'frozen'):
os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
from PyQt5 import QtCore, QtWidgets
获取打包后 exe 文件的当前目录:
# exe 或者 项目 的根目录
base_path = os.path.dirname(os.path.realpath(sys.argv[0]))