Python使用pyinstaller打包踩坑合集

Posted Z-hhhhh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python使用pyinstaller打包踩坑合集相关的知识,希望对你有一定的参考价值。

Python使用pyinstaller打包踩坑合集

一路坎坷,终于从坑里爬出来了。

今天玩了一下Python办公自动化–合并pdf文件

代码不难,随处可见,只是打包出现很多问题,找了不少,没能解决问题

打包方式

打包通过pyinstaller来打包。

首先安装pyinstaller都知道

cmd 然后

pip install pyinstaller

但是一直执行失败,

后来发现原来vpn也会影响

关掉vpn 就可以正常install了

正常打包

其实正常打包的命令很简单

cmd之后,进到文件所在的目录里

pyinstaller -F xxx.py

成功后会看到一个dist文件夹,里面有exe文件,正常情况下 就是可执行文件

执行失败问题-一闪而过

有些时候exe能执行成功,有的则不行。

多数情况下是因为,有外部的improt 没有打进去,所以就执行失败,有时候一闪而过,程序就结束了。

假如是程序正常,且没有外部import的情况下,出现一闪而过的情况下,可以在主函数中加一句

input("按任意键键继续")

会等待出入。

可惜,我加了还是不行,依旧是一闪而过,就是因为外部import

有人说,把导入的模块复制过来就行了,可是 这太影响我在妹子面前装X了。

咱目的就是发个exe给妹子,妹子双击就完事来了。

执行这个命令

pyinstaller -F xxx.py --noconsole

就能找到代码中的外部依赖了。

这时候依旧是一闪而过,但是仿佛能看见什么。只是太快了,于是我掏出了手机,拍了视频,一帧一帧的找,终于发现。

ModuleNotFoundError: No module named xxx

解决缺少module的问题

已经很明显了,这时候就需要把Module的打包进去。

用pycharm打开工程,菜单->setting->project->project Interpreter,把鼠标点到你想要包含的插件上

这时候 就找到目录了,用带目录的命令进行打包

pyinstaller -F -p D:\\project\\pythonproject\\venv\\Lib\\site-packages xxx.py

如果要包含多个目录,那就用分号隔开如

pyinstaller -F -p D:\\project\\pythonproject\\venv\\Lib\\site-packages;E:\\project\\pythonproject\\venv\\Lib\\site-packages xxx.py

这样打包,就完整了,可以愉快的双击exe了,在妹子面前装X成功。

以上是关于Python使用pyinstaller打包踩坑合集的主要内容,如果未能解决你的问题,请参考以下文章

Python使用pyinstaller打包踩坑合集

Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子

pyinstaller打包Django项目

Python3中采用PyInstaller打包工程项目

Python3中采用PyInstaller打包工程项目

python opencv pyinstaller踩坑日记