Python程序本身可以运行,使用Pyinstaller打包后exe文件缺少包

一、情况说明

  1.我这个python后端是利用python xxxxx.py --参数1 {} --参数2 {}...这样启动的,完全没有问题。

  2.使用 pyinstaller -D xxx.py 指令打包以后,显示如下

    反正我阅读理解感觉是没有问题

  3.打开CMD以后,用 xxx.exe --参数1 {} --参数2 {}...的方式 写在bat里去运行,就遇到了如下问题

    网上搜索以后发现这似乎是个共性问题,大家伙都是这样

   

  4.目前搜索下来有大致三个方法:

     一是在主文件头部加代码,但是感觉太呆了,这要是文件多的话,一条一条加日子不过了。

import sys
sys.path.append(r"F:\Program Files\Python\Python36\Lib\site-packages\keras_yolo3\keras-yolo3") #添加自定义模块的路径

    二是去系统环境变量里Path中添加Lib-packages所在路径,但不适用我这个情况,我这报缺少的模块是本身就在项目中的一个文件夹。

    三是以记事本打开生成的“XX.spec”,在hiddenimports中添加相应的提示缺少的模块名。然后在pytharm的Terminal输入框中输入以下命令后:“Pyinstaller 文件名.spec”,等待打包结束。结束后再运行生成的软件测试是否成功,不成功的话继续添加提示缺少的其他模块,直到软件正常运行。
 

二、各种尝试

  1.刚才灵光一闪,既然缺少本身就有的那个文件,我再看了一下生成的的文件夹里有什么,就本身项目的逻辑就是主程序调用一些现成的东西,所以打包的时候它应该是只把跟我要的xxx.py的相关包打包了,至于xxx.py调用的不归他管。既然如此我直接把原来的项目中其他东西复制粘贴过来不就行了!

  非常的纯正,至少现在没有重复报错了,说明这一步我的操作没毛病,然后我去检查了一下,我本身环境里有pypinyin这个包。

  2.想偷懒,我直接去site-packages里把他拷过来

    U1S1,真有效果,开始蚂蚁搬家(搬到之前打包生成的_internal文件夹里).这个问题解决了

  3.现在出现新问题

   

    网上看了两篇,似乎都是采用以下方法,好像就是之前网上看到的,就缺少包-》打包的时候加点少的东西,反正重新打包跑不了,总归要试的。

   

三、总结

  加上后续那一坨重新打包导出,再蚂蚁搬家把一些第三方库复制进去就能跑了,建议第一次复制的时候新建个文件夹放,这样后面就不用再一个一个搜索单独复制了。

  PS:第三方包除了自身还有有个xx-disc-info的东西,那个也一起复制进去比较稳妥,有的包缺少这个的话它检测不到,后端堂堂完结!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值