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 实现调用子文件下的模块方法

python 实现调用子文件下的模块方法

在python开发中,经常会出现调用子文件夹下的py模块 如上图,如果在test.py文件中,要调用meeting文件夹下面的huodongshu.py 模块, 直接在test.py...

Django model update的多种用法介绍

Django model update的多种用法介绍

model update常规用法 假如我们的表结构是这样的 class User(models.Model): username = models.CharField(max_le...

Python实现矩阵转置的方法分析

Python实现矩阵转置的方法分析

本文实例讲述了Python实现矩阵转置的方法。分享给大家供大家参考,具体如下: 前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列...

Python新手入门最容易犯的错误总结

前言 Python 以其简单易懂的语法格式与其它语言形成鲜明对比,初学者遇到最多的问题就是不按照 Python 的规则来写,即便是有编程经验的程序员,也容易按照固有的思维和语法格式来写...

简明 Python 基础学习教程

这里为大家推荐一些不错的学习python基础的网站 Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的...