我正在使用Pyinstaller生成一个包含用PySide2制作的UI的Python3应用程序的可执行文件。
使用--onefile标志产生的.exe很大,为140MB。
我尝试在不使用--onefile标志的情况下生成文件,并查看dist文件夹中包含的内容:令我惊讶的是,来自PySide2的所有内容都包含在内,因此才会有这么大的文件大小。
记住,我只从PySide2导入了几个文件(即: QDialog、QLabel、QPushButton、QApplication、QVBoxLayout),然后手动删除了明显不必要的文件(即QtBluetooth、QtCharts……)而且主要的可执行文件仍然可以完美地工作。
有没有办法做到这两点:
a.手动删除不必要的文件后,继续生成单文件可执行文件
或
具体说明PySide中的哪些内容应该打包?Python脚本中的导入看起来像from PySide2.QtWidgets import QDialog, QLabel, QPushButton, QApplication, QVBoxLayout,但是所有内容都被打包了。
发布于 2021-09-03 06:55:09
啊,你不是在一个单独的虚拟环境中创建构建。
创建一个仅用于构建目的的虚拟环境,并在此环境中安装所需的包。
在cmd中,执行这些命令以创建虚拟环境
python -m venv build_env
cd build_env
C:\build_env\Scripts\Activate您将看到此>>(build_env) C:\build_env
安装脚本所需的所有包,从pyinstaller开始
pip安装pyinstaller
安装完毕后,像以前一样构建exe。使用虚拟环境构建的exe应该更小!!
https://stackoverflow.com/questions/68926409
复制相似问题