python打包成exe,太大了该怎么解决?
关键点就一个:要在虚拟环境里安装pyinstaller
如果你没有在虚拟环境中安装pyinstaller,你同样可以使用pyinstaller命令,但是调用的是你系统原本的那个python编译器,内含很多关联库,导致即使在虚拟环境中,你打包的exe文件仍然非常大。
另外一点要注意的是:要在虚拟环境里安装好你py文件中调用的库,不然打包出来也没法正常运行。
最后再复习一下正确流程 (前提是安装好pipenv):
#建立虚拟环境
pipenv install
#进入虚拟环境(上一步可省略,因为没有虚拟环境的话会自动建立一个)
pipenv shell
#安装模块
pip install requests pyquery pysimplegui fake_useragent
#打包的模块也要安装
pip install pyinstaller
#开始打包
pyinstaller -Fw E:\test\url_crawler.py
警告(不影响程序生成)
WARNING: lib not found: api-ms-win-crt-heap-l1-1-0.dll dependency of c:\python36\lib\site-packages\P
报错是因为打包时缺失了api-ms-win-crt-*-l1-1-0.dll这类型的数据,而它就存放在C:\Windows\System32\downlevel里,因此加上 -p参数 添加该引用路径就好了
解决办法
PS C:\Users\Qiuyi> cd D:\Python_Projects\PyQt_Practices
PS D:\Python_Projects\PyQt_Practices> pyinstaller -p C:\Windows\System32\downlevel -F -w be_my_girlfriend.py
exe 生成位置
INFO: Appending archive to EXE D:\Python_Projects\PyQt_Practices\dist\be_my_girlfriend.exe
*.spec 是于pyinstaller生成的配置文件,下次打包时,可以不运行上面带参数的命令,而直接运行:
pyinstaller transdocx.spec