python pyinstaller打包exe报错的解决方法

yipeiwu_com6年前Python基础

今天用python 使用pyinstaller打包exe出现错误

环境pyqt5 + python3.6 32位

在导入pyqt5包之前加上如下代码

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

from PyQt5.QtWidgets import QApplication, QMainWindow
from pyqt_ui.MainWindow import MainWin

if __name__ == '__main__':
 app = QApplication(sys.argv)
 mainWindow = QMainWindow()
 main_dialog = MainWin(mainWindow)
 mainWindow.show()
 sys.exit(app.exec_())

运行

pyinstaller -F main2.py
INFO: PyInstaller: 3.5
INFO: Python: 3.6.4
INFO: Platform: Windows-7-6.1.7601-SP1
INFO: wrote E:\workspace\devTest\main2.spec
INFO: UPX is not available.
INFO: Extending PYTHONPATH with paths
['E:\\workspace\\devTest', 'E:\\workspace\\devTest']
INFO: checking Analysis
INFO: Building because E:\workspace\devTest\main2.py changed
INFO: Initializing module dependency graph...
INFO: Initializing module graph hooks...
INFO: Analyzing base_library.zip ...
INFO: running Analysis Analysis-00.toc
INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
 required by d:\mytool\env\env36-32\scripts\python.exe
INFO: Caching module hooks...
INFO: Analyzing E:\workspace\devTest\main2.py
INFO: Processing pre-find module path hook distutils
INFO: distutils: retargeting to non-venv dir 'C:\\Program Files (x86)\\Python36-32\\Lib\\distutils\\__init__.py'
INFO: Processing pre-safe import module hook win32com
INFO: Loading module hooks...
INFO: Loading module hook "hook-encodings.py"...
INFO: Loading module hook "hook-pydoc.py"...
INFO: Loading module hook "hook-PyQt5.py"...
WARNING: Hidden import "sip" not found!
INFO: Loading module hook "hook-PyQt5.QtCore.py"...
INFO: Loading module hook "hook-PyQt5.QtGui.py"...
INFO: Loading module hook "hook-PyQt5.QtWidgets.py"...
INFO: Loading module hook "hook-pythoncom.py"...
INFO: Loading module hook "hook-pywintypes.py"...
INFO: Loading module hook "hook-win32com.py"...
INFO: Loading module hook "hook-xml.py"...
INFO: Looking for ctypes DLLs
INFO: Analyzing run-time hooks ...
INFO: Including run-time hook 'pyi_rth_pyqt5.py'
INFO: Including run-time hook 'pyi_rth_win32comgenpy.py'
INFO: Looking for dynamic libraries
INFO: Looking for eggs
INFO: Using Python library d:\mytool\env\env36-32\scripts\python36.dll
INFO: Found binding redirects:
[]
INFO: Warnings written to E:\workspace\devTest\build\main2\warn-main2.txt
INFO: Graph cross-reference written to E:\workspace\devTest\build\main2\xref-main2.html
INFO: checking PYZ
INFO: Building because toc changed
INFO: Building PYZ (ZlibArchive) E:\workspace\devTest\build\main2\PYZ-00.pyz
INFO: Building PYZ (ZlibArchive) E:\workspace\devTest\build\main2\PYZ-00.pyz completed successfully.
INFO: checking PKG
INFO: Building because toc changed
INFO: Building PKG (CArchive) PKG-00.pkg
WARNING: One binary added with two internal names.
WARNING: ('libGLESv2.dll',
 'D:\\mytool\\env\\env36-32\\lib\\site-packages\\PyQt5\\Qt\\bin\\libGLESv2.dll',
 'BINARY')
WARNING: was placed previously at
WARNING: ('PyQt5\\Qt\\bin\\libGLESv2.dll',
 'D:\\mytool\\env\\env36-32\\lib\\site-packages\\PyQt5\\Qt\\bin\\libGLESv2.dll',
 'BINARY')
INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
INFO: Bootloader d:\mytool\env\env36-32\lib\site-packages\PyInstaller\bootloader\Windows-32bit\run.exe
INFO: checking EXE
INFO: Building because toc changed
INFO: Building EXE from EXE-00.toc
INFO: Appending archive to EXE E:\workspace\devTest\dist\main2.exe
INFO: Building EXE from EXE-00.toc completed successfully.

打包成功

运行出现正常界面

注:为避免重复将main.py 更改为main2.py了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

python随机取list中的元素方法

python随机取list中的元素方法

随机取 list 中的元素 random.sample import random a = [1, 2, 3, 4, 5, 6, 7, 8, 9] b = random.sample...

python 机器学习之支持向量机非线性回归SVR模型

python 机器学习之支持向量机非线性回归SVR模型

本文介绍了python 支持向量机非线性回归SVR模型,废话不多说,具体如下: import numpy as np import matplotlib.pyplot as plt...

Python实现一个简单的验证码程序

  老师讲完random函数,自己写的,虽然和老师示例的不那么美观,智能,但是也自己想出来的,所以记录一下,代码就需要自己不断的自己练习,实战,才能提高啊!不然就像我们这些大部分靠自学的...

Python unittest 简单实现参数化的方法

Python unittest 理论上是不建议参数驱动的,其用例应该专注单元测试,确保每个method的逻辑正确。 引用Stack Overflow的一个答案, “单元测试应该是独立的,...

Python控制多进程与多线程并发数总结

Python控制多进程与多线程并发数总结

一、前言 本来写了脚本用于暴力破解密码,可是1秒钟尝试一个密码2220000个密码我的天,想用多线程可是只会一个for全开,难道开2220000个线程吗?只好学习控制线程数了,官方文档...