瘦身秘籍:如何使用 PyInstaller 打造超小型 Python 可执行文件

发布于:2024-05-01 ⋅ 阅读:(32) ⋅ 点赞:(0)

你是否曾经尝试过将你的 Python 程序打包成一个可执行文件,却发现生成的文件大得惊人?别担心,本文将教你如何使用 PyInstaller 尽可能减小生成的 onefile 大小,让你的程序轻盈如风!

1. 使用虚拟环境

首先,我们需要在虚拟环境(virtual environment)中安装我们的程序及其依赖项。这样做的好处是可以避免打包不必要的库,从而减小最终文件的大小。

python -m venv my_venv
source my_venv/bin/activate  # 在 Windows 上使用 my_venv\Scripts\activate
pip install -r requirements.txt

2. 仅打包必要的库

确保 requirements.txt 文件仅包含你的程序所需的库。这样,在打包过程中,PyInstaller 只会包含这些库,从而减小文件大小。

3. 使用 --onefile 选项

PyInstaller 的 --onefile 选项可以将所有文件打包成一个单独的可执行文件。这是一个很好的选择,因为它可以让你更方便地分发你的程序。

pyinstaller --onefile my_script.py

4. 使用 --strip 选项

使用 --strip 选项可以从可执行文件中删除符号信息,从而减小文件大小。这对于发布版本特别有用。

pyinstaller --onefile --strip my_script.py

5. 使用 --noconsole 选项

如果你的程序没有控制台窗口,可以使用 --noconsole 选项。这将减小生成的可执行文件的大小。

pyinstaller --onefile --noconsole my_script.py

6. 使用 --exclude-module 选项

如果你知道某些库对你的程序来说是不必要的,可以将它们排除在打包过程之外。

pyinstaller --onefile --exclude-module numpy my_script.py

7. 使用 UPX 压缩

UPX 是一个可执行文件压缩器,可以减小生成的可执行文件的大小。要使用 UPX,你需要先下载并安装它,然后在 PyInstaller 命令中使用 --upx-dir 选项指定 UPX 的路径。

pyinstaller --onefile --upx-dir=path/to/upx my_script.py

8. 添加额外数据文件

如果你的程序需要额外的数据文件,可以使用 --add-data 选项将它们添加到打包过程中。这样可以避免将整个文件夹打包到可执行文件中。

pyinstaller --onefile --add-data="data_file.txt;data" my_script.py

9. 为你的程序添加图标

最后,使用 --icon 选项为你的可执行文件添加一个图标,使其看起来更专业。

pyinstaller --onefile --icon=my_icon.ico my_script.py

打包可能存在的闪退问题:

如果是pandas读取excel,就会出现闪退:

pyinstaller -F -w -i ./favicon.ico app/app.py

app.exe > error_log.txt

上面可以查看闪退时的CMD错误。

遵循以上步骤,你应该能够使用 PyInstaller 生成一个非常小的 onefile 可执行文件。但请注意,生成的可执行文件可能会因为压缩和优化而运行速度较慢。在实际使用中,可以根据需求权衡文件大小和运行速度。
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到