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打包踩坑合集的主要内容,如果未能解决你的问题,请参考以下文章