pyinstaller pyqt5 打包

参考:

https://blog.csdn.net/j_starry/article/details/82261807

https://www.jianshu.com/p/c451db99adca

一个小程序包括3个python文件,1个db文件。主窗口是login.py。help,hello是自建模块。用的python3.6,pyqt5.13.0

最后用的这个

pyinstaller --paths "C:\Users\yuyang\Anaconda3\Lib\site-packages\PyQt5\Qt\bin" -F -w login.py -p hello.py -p help.py --hidden-import hello --hidden-import help

具体每个参数的含义:

pyinstaller -F -w -i img.ico main.py

pyinstaller -F -c -i img.ico main.py
(建议先用-c,这样如果打包不成功的话可以看到哪里有错)
-F 指只生成一个exe文件,不生成其他dll文件
-w 不弹出命令行窗口
-i 设定程序图标 ,其后面的ico文件就是程序图标
main.py 就是要打包的程序
-c 生成的exe文件打开方式为控制台打开。

遇到的问题及解决办法:

1. python下面没有QT的动态链接库,就是这个路径:C:\Users\yuyang\Anaconda3\Lib\site-packages\PyQt5\Qt\bin

重新安装了PyQt5,在Pypi上下载的whl文件安装的。

2. 用 --paths定位到dll,在自己的电脑上没问题,但是别的就不行了。于是,在代码前面加一段重新打包就可以了。

from PyQt5 import QtCore, QtGui, QtWidgets

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

from PyQt5.QtWidgets import *

猜你喜欢

转载自blog.csdn.net/summermaoz/article/details/100105178