Pyinstaller打包TensorFlow-GPU程序出现:No module named ‘tensorflow.python._pywrap_tensorflow_internal

47 篇文章 5 订阅
46 篇文章 9 订阅

目录

1.问题背景

2.问题分析

3.解决方法


1.问题背景

        最近需要将之前基于TensorFlow-GPU写的深度学习分类程序分发给其他同事使用,但众所周知,深度学习的配置较为麻烦,因此在想能否程序打包,直接运行即可?

 

        Python下面的打包库有很多,为了保险起见,没有选较为新潮的打包库,而是选择了老牌的Pyinstaller进行打包,然后就有了这篇博客。

 

2.问题分析

        Pyinstaller有主流的两种打包方式:打包成文件夹(-D)或一个独立的文件(-F),强烈建议将程序打包为文件夹,不要打包为一个独立的文件,主要原因如下:

  1. 虽然独立的文件看着非常清爽,但是面对一些复杂的程序时,往往无法成功运行,却没法对打包后的程序进行修改,比如本文的这个问题,如果是独立的文件,基本无法解决。
  2. 并且,虽然是独立的文件,其实可以将其理解成一个压缩包,在运行时,还是会解压缩为一个名为_MEIxx的文件夹,进而运行,如果程序正常运行,在完毕时他会将这个临时文件夹删除,这样还多了解压缩的时间损耗。
  3. 如果你的程序并没有正常运行而是运行到一半崩溃了,上述临时文件夹可能无法被删除,长时间如此,会消耗大量的磁盘空间。

 在我们将程序打包好之后,直接运行程序,出现:ModuleNotFoundError: No module named 'tensorflow.python._pywrap_tensorflow_internal',如下图:

3.解决方法

        我们尝试在打包后的文件夹中中搜索_pywrap_tensorflow_internal,发现是可以找到的,说明只是路径不对,程序没有正确找到。这时我们只需要在dist文件夹下面的主程序入口文件夹如我这边是对main.py打包,那么就是在main文件夹下)新建一个文件夹:“tensorflow/python”,然后将搜索到的_pywrap_tensorflow_internal文件剪贴到该文件夹即可!

        注:如果是单一的文件模式打包,那我们就没有办法修改这个文件的路径了!所以,一定要打包为文件夹哦~~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任博啥时候能毕业?

有用的话,请博主喝杯咖啡吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值