【Python】详解Pyinstaller打包pyqt5时,生成的exe报错、闪退等问题

首先,大多数的教程都是在cmd中安装Pyinstaller

使用安装命令:pip install pyinstaller;使用清华大学镜像源加快速度:

pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

结果如下:

C:\Users\little>pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: pyinstaller in d:\pycharm\anaconda\lib\site-packages (5.4.1)
Requirement already satisfied: setuptools in d:\pycharm\anaconda\lib\site-packages (from pyinstaller) (58.0.4)
Requirement already satisfied: altgraph in d:\pycharm\anaconda\lib\site-packages (from pyinstaller) (0.17.2)
Requirement already satisfied: pywin32-ctypes>=0.2.0 in d:\pycharm\anaconda\lib\site-packages (from pyinstaller) (0.2.0)
Requirement already satisfied: pefile>=2022.5.30 in d:\pycharm\anaconda\lib\site-packages (from pyinstaller) (2022.5.30)
Requirement already satisfied: pyinstaller-hooks-contrib>=2021.4 in d:\pycharm\anaconda\lib\site-packages (from pyinstaller) (2022.10)
Requirement already satisfied: future in d:\pycharm\anaconda\lib\site-packages (from pefile>=2022.5.30->pyinstaller) (0.18.2)

显示已经安装过了

其次,使用Pyinstaller对自己的项目进行打包成exe

单个文件打包

pyinstaller -F -w -i xxx.ico main.py --noconsole

多个文件打包

pyinstaller [主文件] -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2]

        常用参数 含义
        -i 或 -icon 生成icon
        -F 创建一个绑定的可执行文件
        -w 使用窗口,无控制台
        -C 使用控制台,无窗口
        -D 创建一个包含可执行文件的单文件夹包(默认情况下)
        -n 文件名

例如我的项目:

correction.py 主运行程序
add_dialog.py 主界面跳转的dialog界面程序
cubic_spline.py 主程序的一个调用程序
correction.ui 主界面
add_dialog.ui dialog界面
pyinstaller -F -w correction.py -p add_dialog.py -p cubic_spline.py --hidden-import correction --hidden-import add_dialog --hidden-import cubic_spline 

但是这样生成的exe 会出现闪退以及因缺少import而不能运行的问题

我的方法

1、在pycharm中的terminal中pip install pyinstaller

2、在pycharm中的terminal中  pyinstaller -F -w correction.py -p add_dialog.py -p cubic_spline.py --hidden-import correction --hidden-import add_dialog --hidden-import cubic_spline

successfully之后 ,所在项目的文件夹下会生成build、dist两个文件夹xxx.spec文件

3、打开项目所在文件夹下,刚生成的dist文件夹。运行里面的exe文件即可。

                                                                                                                                        PS: 由于我的背景和图标是在correction.py 下的主界面程序中添加的,所以不在pyinstaller中使用--icon

# 设置背景图片
MainWindow.setStyleSheet('#MainWindow{border-image:url(background.jpg);}')  
# 设置图标
MainWindow.setWindowIcon(QtGui.QIcon('logo.ico'))

运行应用程序时,无背景和图标显示时,需要您将您的背景图片和图标放入dist文件夹下,运行时才会显示出来背景图像和图标

猜你喜欢

转载自blog.csdn.net/weixin_44888196/article/details/127021068