使用 pyinstaller 将 pyqt 构建为 exe 后文件大小较大
使用 pyinstaller 将 pyqt 构建为 exe 后文件大小较大
为了将 PyQt 构建的 EXE 文件的大小减小,我们可以采用一些优化技巧。以下是使用 pyinstaller 进行打包时的一些建议步骤:
-
安装必要的插件:对于包含 GUI 的应用程序,我们需要安装额外的插件来减少最终可执行文件的体积。例如,可以使用
PyInstaller-hooks-contrib提供的PyQt5_plugins插件来优化 PyQt 项目的打包过程。首先,通过 pip 安装这个插件:pip install pyinstaller-hooks-contrib -
在
pyproject.toml或setup.cfg文件中添加钩子配置:在setup.cfg文件中,找到或添加一个[options]部分,并在py_modules和packages中添加PyQt5_plugins插件。[options] py_modules = PyQt5_plugins packages = find: -
修改打包命令:为了减少可执行文件的大小,我们需要使用
--strip选项来去除动态链接库(DLL)中的调试信息。同时,可以使用--onefile或--noconsole来创建单文件或无图形界面的可执行文件。最后,通过指定 Python 解释器路径和目标文件夹,运行打包命令:pyinstaller --strip --onefile --noconsole -y main.py -
使用资源预编译技术:为了进一步减小可执行文件的大小,我们可以利用 PyInstaller 的
--add-data选项来将需要包含的静态资源(如图片、音频等)打包进可执行文件中。例如,假设我们有两个静态资源文件image.png和audio.mp3,我们需要将它们包含在可执行文件中:pyinstaller --strip --onefile --noconsole -y --add-data "resources/image.png;." --add-data "resources/audio.mp3;." main.py -
测试打包后的应用程序:在确保所有资源都被正确包含并打包之后,可以重新构建可执行文件后进行测试。确保应用能够正常运行,并且静态资源的访问路径没有问题。
-
AI 应用场景示例:如果你的应用程序需要与人工智能大模型(如 OpenAI 的 GPT-3)进行交互,那么你可以在 PyQt 项目的后端部分集成 OpenAI SDK。例如,你可以创建一个简单的 PyQt 界面来获取用户输入的文本,然后通过 Python 脚本调用 OpenAI 的 API 来生成回复。以下是一个简单的示例代码:
import sys from openai import OpenAI from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QLineEdit class MainWindow(QMainWindow): def __init__(self): super().__init__() self.openai = OpenAI('你的-api-密钥') self.line_edit = QLineEdit(self) self.push_button = QPushButton('生成回复', self) self.push_button.clicked.connect(self.generate_reply) def generate_reply(self): prompt = self.line_edit.text() response = self.openai.ChatCompletion.create( model='gpt-3.5-turbo', messages=[ {'role': 'system', 'content': '你好,我是一个AI助手。'}, {'role': 'user', 'content': prompt}, ], ) print(response['choices'][0]['message']['content']) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
通过以上步骤,你可以将 PyQt 构建的 EXE 文件大小减小,并优化其性能。如果需要进一步优化,可以尝试使用 pyinstaller 提供的其他高级功能,或者考虑使用其他打包工具,如 cx_Freeze 或 PyOxidizer。
更多推荐


所有评论(0)