pyinstall 打包pyqt5文件
1、环境: python3.6(Anaconda3安装包带的) pyinstaller(3.3.1)
2、打包单文件
先测试了一下hello.py在python控制台内可以运行,接着用pyinstaller的打包命令将其打包,但打包后的exe无法运行
3、上网搜索了一下,说是缺少platform文件。但是按照网上教程所说的将D:\Qt\Qt5.9.4\5.9.4\msvc2017_64\plugins\platforms(本机电脑路径)文件夹拷贝到exe所在目录,仍然无法运行。细细琢磨一下,可能需要python路径下的qt相关platforms,然后就在Anaconda3(本人用的python是Anaconda3自带的)目录下搜索platforms文件夹,还真找到了:
将本文件夹拷贝到exe目录,exe得以运行,bingo!
将.ui资源文件打包进exe的方法:
1、hello.py,可正常运行
代码如下:
import os,sys from PyQt5.QtWidgets import QWidget,QApplication from PyQt5 import uic class Hello(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): if getattr(sys, 'frozen', False): '''打包之后,资源文件的路径改变''' dir = sys._MEIPASS else: dir = os.path.dirname(os.path.abspath(__file__)) print(dir) uic.loadUi(dir + '/hello.ui',self) self.show() if __name__ == '__main__': app = QApplication(sys.argv) hi = Hello() sys.exit(app.exec_())
2、确认python正常环境运行无误后,用pyinstaller将之打包
3、将platforms文件拷贝到dist,exe可以运行