本文基于python3.6-32环境运行操作,python3.7以及64位的python使用pyinstaller似乎会出现打包不成功的情况。
在工程根目录下,”Shift“+右键,选择“在此处打开Powershell”。
![](https://img.haomeiwen.com/i12574551/831bf8df0fad99e9.png)
输入如下命令(Main.py需要根据自己的文件命名修改):
pyinstaller -F Main.py
执行完成后会该目录下会生成Main.spec,用文本打开该文件,修改下图红框位置增加“ico”地址,也可通过修改name的值来修改生成的.exe文件名,保存。
![](https://img.haomeiwen.com/i12574551/44197d6736f0ee9f.png)
在Powershell中输入如下命令(Main.py需要根据自己的文件命名修改):
pyinstaller -F Main.spec
出现下图所示INFO,即打包成功,在dict文件夹下即可看到.exe文件。
![](https://img.haomeiwen.com/i12574551/334f8632d5eda414.png)
打包过程中可能会遇到的问题:
-
生成的exe被误认为是病毒
在spec文件中添加icon。 -
出现no module import的情况
可以用pyinstaller -F name.py --hidden-import=modul指令打包(modul为缺少的模块名) 。 -
pyqt5在win10下用pyinstaller打包成exe,打包后的界面风格变成了win98的解决办法
在Python的安装 目录下找到 Lib\site-packages\PyQt5\Qt\plugins\styles, 把整个目录拷贝到工程的目中下,在spec文件中添加如下代码。
a.datas.extend([
('PyQt5/Qt/plugins/styles/qwindowsvistastyle.dll', 'src/styles/qwindowsvistastyle.dll', 'BINARY')
])
- 缺少某些依赖文件
可以在spec文件的binaries后面添加指定路径的文件。
binaries=[(r'C:\\SoftWare\\Office SoftWare\\Python3.6.4\\Lib\site-packages\\cmsis_pack_manager\\_native__lib.cp37-win32.pyd', 'cmsis_pack_manager')],
- 打包之后出现Error: unknown encoding: utf-8
使用下面的指令卸载这个模块即可。
pip uninstall enum34
- 运行打包的exe文件出现以下提示
![](https://img.haomeiwen.com/i12574551/488bf96f78c2840e.png)
在工程中的py文件开头增加以下代码。
import sys, os
if hasattr(sys, 'frozen'):
os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
网友评论