Python 基础知识

在支持PIP的情况下
pip install pyinstaller
安装 pyinstaller 后执行pyinstaller --version查看所安装的版本

pyinstaller : 打包可执行文件的主要命令,详细用法下面会介绍。
pyi-archive_viewer : 查看可执行包里面的文件列表。
pyi-bindepend : 查看可执行文件依赖的动态库(.so或.dll文件)
pyi-... : 等等。

打包程序

pyinstaller mycript.py
然后会看到新增加了两个目录build和dist,dist下面的文件就是可以发布的可执行文件,对于上面的命令你会发现dist目录下面有一堆文件,各种都动态库文件和myscrip可执行文件。有时这样感觉比较麻烦,需要打包dist下面的所有东西才能发布,万一丢掉一个动态库就无法运行了,好在pyInstaller支持单文件模式,只需要执行:

pyinstaller -F mycript.py

你会发现dist下面只有一个可执行文件,这个单文件就可以发布了,可以运行在你正在使用的操作系统类似的系统的下面。

可能问题

注意点

1
2
3
4
1.windows系统的版本和位数 (mac系统和linux 没有进行测试过)
2.python3的版本和位数
3.pyqt5的版本和位数 (如果pip安装,则位数同python3)
4.pyinstaller的版本和位数(一般pip安装,无需考虑位数)

为程序添加图标

运行出现cmd窗口

取消cmd窗口弹出的参考方式如下:

方法一:pyinstaller -F mycode.py --noconsole 
方法二:pyinstaller -F -w mycode.py (-w就是取消窗口)

pyinstaller打成的包,可以在64位操作系统使用,无法在32位操作系统使用

1
2
3
4
5
6
7
坑的成因:
python存在64位版本和32位版本。
64位版本打成的包,只能在64位操作系统使用。
32位版本打成的包,即可以在64位操作系统使用,也可以在32位操作系统使用。

解决方案:
重新安装32位版本的python,进行开发。

pyinstaller打成的包,可以在win7以上操作系统使用,无法在xp操作系统使用

1
2
3
4
5
坑的成因:
python3 从3.5版本开始,就已经不支持xp操作系统了。

解决方案:
重新安装3.4版本的python,进行开发。

pyqt5应用,开发运行时是正常,但pyinstaller打成的包,界面失真变丑。

1
2
3
4
5
6
7
8
坑的成因:
pyinstaller 不支持最新版本的pyqt5。

解决方案:
重新安装低版本的pyqt5,进行开发。(当前推荐:5.8.2版本)
命令
pip uninstall pyqt5
pip install pyqt5==5.8.2

pyqt5应用,开发运行时是正常,无法打包成功或打包成功但pyinstaller打成的包,无法运行,提示failed to execute script xxx。

1
2
3
4
5
6
7
8
坑的成因:(同坑3)
pyinstaller 不支持最新版本的pyqt5。

解决方案:(同坑3)
重新安装低版本的pyqt5,进行开发。(当前推荐:5.8.2版本)
命令
pip uninstall pyqt5
pip install pyqt5==5.8.2

pyqt5、pyqt5-tools 安装失败

1
2
3
4
5
坑的成因:
你的python3可能是最新版本,pyqt5、pyqt5-tools、pyqtchart还不支持最新版本的python3

解决方案:
重新安装低版本的python3,进行开发。(当前推荐:3.6.6版本)

pyqtchart、pyqtdatavisualization 安装失败

1
2
3
4
5
6
坑的成因:
pyqtchart、pyqtdatavisualization对pyqt5的版本有依赖需求。

解决方案:
针对pyqt5的版本进行安装。
命令如: pip install pyqtchart==5.8

打包opencv 过程中,部分包加载异常

1
2
3
4
5
6
7
8
ImportError: OpenCV loader: missing configuration file: ['config.py']. Check OpenCV installation.

解决方案:
import cv2
print(cv2.__file__)
# 这里我得到的是 D:\ProgramData\Anaconda3\lib\site-packages\cv2\__init__.py
# 在使用 pyinstaller 时,加入 paths 选项:
pyinstaller main.py -F --paths="D:\ProgramData\Anaconda3\lib\site-packages\cv2"
-------------本文结束感谢您的阅读-------------