主要是借着周日放假,记录一下之前开发的知乎好物选品工具生成.EXE文件时候遇到的问题。
Pyinstaller打包执行指令
打包执行指令很简单,找到需要打包的python文件所处的文件夹,根据自己需求选择下述其中一种方式即可。
-F:只在dist文件夹中生成一个exe文件pyinstaller -F xxx.py
-D:在dist文件夹中生成一个xxx的文件夹
pyinstaller -D xxx.py
“感兴趣的读者可以去百度搜下Pyinstaller的相关博客,基础使用方法讲述的都很全面。”
后面主要记录下生成.EXE文件时候,我遇到的两个问题:
生成可执行文件过大,高达数百m打包成功后,TXT文件路径错误Q1:生成可执行文件过大
由于我本机使用的PYTHON环境是 VScode+ Anaconda的形式部署的,
虽然程序中并没有引用到某些第三方库,但是Pyinstaller打包时,会将内置的科学计算库统统打包,导致生成可执行文件过大,运行起来十分缓慢。
“虽然 pyinstaller -D xxx.py 可以一部分缩小生成文件的大小,但这并不能满足我们。”
既然是由于anaconda内置的第三方库导致的,那创建一个干净的虚拟环境,只安装程序中使用到的包不就可以了么?
在万能度娘的帮助下,找到了Pipenv
“pipenv发布于2017年1月,是pip和virtualenv的组合体,它基于Pipfile的依赖记录方式,自动管理虚拟环境和依赖文件。
最终打包的.EXE从300m成功压缩到20m。
Q2:打包成功,但TXT路径错误
由于最新的选品工具程序中,调用了外部的pcuseragent.txt来更换请求头,执行打包后的.EXE,UI界面能够正常显示,运行时显示文件路径错误,直接闪退。
解决方法是:将依赖的数据集放到.EXE所在文件的目录中,即dist文件夹下。
“但注意源代码中的引用数据集处的路径要做出相应的修改!!