如何用PyInstaller生成最小体积可执行文件?Windows 10环境
如何在Windows 10的干净Python 3.5环境中用PyInstaller生成独立可执行文件
作为同样在Windows 10上折腾过干净Python环境打包的开发者,我分享下自己的测试过程和结果——我本身装了Anaconda,但为了生成最小化的独立exe,特意搭建了纯Python 3.5的极简环境,做了两项测试:
测试1:基础脚本的极简打包
- 先准备测试环境:在
testenv文件夹里新建test1.py,只写最基础的代码:print("Hello from clean Python 3.5!") - 搭建干净的虚拟环境:为了完全避开Anaconda的干扰,我用Python 3.5自带的
venv创建独立环境:# 确保系统已安装Python 3.5,执行命令创建环境 python3.5 -m venv ./clean_py35_env # 激活这个干净环境 .\clean_py35_env\Scripts\activate.bat - 安装PyInstaller并打包:选适配Python 3.5的PyInstaller版本(我用的是3.2.1),然后打包成单文件exe:
pip install pyinstaller==3.2.1 pyinstaller --onefile test1.py - 最终结果:生成的
test1.exe大小大概6MB,完全独立,不需要依赖任何系统或Anaconda的库,双击就能运行。
测试2:引入pandas后的打包情况
- 修改脚本引入pandas:更新
test1.py的内容,加入pandas的基础使用代码:import pandas as pd sample_df = pd.DataFrame({"ID": [1, 2, 3], "Value": ["A", "B", "C"]}) print("Sample DataFrame:\n", sample_df) - 在干净环境安装pandas:激活之前的
clean_py35_env,安装适配Python 3.5的pandas版本(我选的0.25.3):pip install pandas==0.25.3 - 重新打包:再次执行PyInstaller命令:
pyinstaller --onefile test1.py - 结果:这次生成的exe体积会大幅增加(通常会到300MB左右),这是因为PyInstaller会把pandas及其所有依赖(比如numpy、各类底层运算库)都完整打包进去,确保exe在没有任何外部依赖的环境下也能正常运行。
额外小贴士
- 为什么不用Anaconda的环境?因为Anaconda默认会预装很多冗余库,哪怕是新建环境也可能带一些不必要的依赖,导致打包出来的exe体积臃肿,原生
venv能保证环境绝对干净。 - 版本适配是关键:一定要选择和Python 3.5兼容的第三方库版本,不然会出现安装失败或者打包后运行报错的问题。
- 如果想进一步缩小exe体积,可以试试
--exclude-module参数手动排除不需要的依赖模块,或者用UPX工具压缩(但要注意UPX可能会导致某些复杂依赖的exe运行异常,需要测试验证)。
内容的提问来源于stack exchange,提问作者esperluette
相关产品推荐
相关产品推荐

