pyinstaller + tensorflow + python

错误整理:

错误1:

for real_module_name, six_moduleAttributeError: 'str' object has no attribute 'items'

解决方法:

pip install -U --pre setuptools

 错误2:

ModuleNotFoundError: No module named 'tensorflow.python._pywrap_tensorflow_internal'

 解决方法:

假如是文件夹生成模式生成的,比较简单,在生成的dist/[exe_name]/文件夹中,找到“_pywrap_tensorflow_internal.pyd”文件,剪切,在这个文件夹中新建一个tensorflow文件夹,并在tensorflow文件夹中新建一个python文件夹,将刚刚剪切的pyd文件黏贴到python文件夹中,再次运行exe,问题解决。

假如是单文件exe模式,可用以下方法,首先在python库文件夹中找到_pywrap_tensorflow_internal.pyd(懒得找就用文件夹模式生成一次,在exe所在的文件夹中就有),然后使用以下命令生成。

pyinstaller -F .py --add-data="/path/to/the/pyd/_pywrap_tensorflow_internal.pyd;tensorflow/python"

 错误3:

moviepy.audio.fx.all has no attribute of audio_fadein 

moviepy.video.fx.all has no attribute of fadein 

 解决方法:

将python/lib/sitepackages/moviepy文件夹ca拷贝到XXX.py所在的目录,修改moviepy/audio/fx/all 下的__init__.py文件

#for name in __all__:
    #exec("from ..%s import %s" % (name, name))
from moviepy.audio.fx.audio_fadein import audio_fadein
from moviepy.audio.fx.audio_fadeout import audio_fadeout
from moviepy.audio.fx.audio_left_right import audio_left_right
from moviepy.audio.fx.audio_loop import audio_loop
from moviepy.audio.fx.audio_normalize import audio_normalize
from moviepy.audio.fx.volumex import volumex

修改mzoviepy/video/fx/all 下的__init__.py文件

#focr name in __all__:
    #exec("from ..%s import %s" % (name, name))
from moviepy.video.fx.crop import crop
from moviepy.video.fx.fadein import fadein
from moviepy.video.fx.fadeout import fadeout
#from moviepy.video.fx.left_right import left_right
from moviepy.video.fx.margin import margin
from moviepy.video.fx.loop import loop
from moviepy.video.fx.invert_colors import invert_colors
from moviepy.video.fx.mask_and import mask_and
from moviepy.video.fx.mask_color import mask_color
from moviepy.video.fx.mask_or import mask_or
from moviepy.video.fx.mirror_x import mirror_x
from moviepy.video.fx.mirror_y import mirror_y
from moviepy.video.fx.resize import resize
from moviepy.video.fx.rotate import rotate
from moviepy.video.fx.scroll import scroll
from moviepy.video.fx.speedx import speedx
from moviepy.video.fx.supersample import supersample
from moviepy.video.fx.time_mirror import time_mirror
from moviepy.video.fx.time_symmetrize import time_symmetrize

最后执行:

pyinstaller –F –p moviepy XXX.py

错误4:

ModuleNotFoundError: No module named 'pywt._extensions._cwt'

 解决方法:

打开打包生成的 .spec 文件(跟打包程序在同一文件夹下),在hiddenimport=[] 中修改为hiddenimport=["pywt",'pywt._extensions._cwt'], 然后执行 pyinstaller yourfile.spec 即可。

如果出现提醒程序过长可以执行:

chcp 65001 

参考链接:

http://www.bokee.net/bloggermodule/blog_viewblog.do?id=31438972

https://blog.csdn.net/m0_37876745/article/details/80719906

https://www.jianshu.com/p/b0e3a74ca97b

https://blog.csdn.net/firing00/article/details/82620384

 

 

你可能感兴趣的:(pyinstaller + tensorflow + python)