美文网首页
【Python】使用pyinstaller生成.exe以及遇到的

【Python】使用pyinstaller生成.exe以及遇到的

作者: Blue_Well | 来源:发表于2020-06-21 16:18 被阅读0次

本文基于python3.6-32环境运行操作,python3.7以及64位的python使用pyinstaller似乎会出现打包不成功的情况。

在工程根目录下,”Shift“+右键,选择“在此处打开Powershell”。

输入如下命令(Main.py需要根据自己的文件命名修改):

pyinstaller -F Main.py 

执行完成后会该目录下会生成Main.spec,用文本打开该文件,修改下图红框位置增加“ico”地址,也可通过修改name的值来修改生成的.exe文件名,保存。

在Powershell中输入如下命令(Main.py需要根据自己的文件命名修改):

pyinstaller -F Main.spec

出现下图所示INFO,即打包成功,在dict文件夹下即可看到.exe文件。

打包过程中可能会遇到的问题:

  • 生成的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文件出现以下提示

在工程中的py文件开头增加以下代码。

import sys, os
if hasattr(sys, 'frozen'):
    os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']

相关文章

网友评论

      本文标题:【Python】使用pyinstaller生成.exe以及遇到的

      本文链接:https://www.haomeiwen.com/subject/dqcaxktx.html