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可以运行

 

posted @ 2018-08-29 17:44  云中虾  阅读(675)  评论(0编辑  收藏  举报