pyinstaller打包tensorflow出错,ModuleNotFoundError: No module named tensorflow_core.python

该类型错误还有ImportError: cannot import name 'pywrap_tensorflow' 等。运行报错是pyinstaller无法导入tensorflow_core。问题解决方式为:在所运行的python文件(mypython.py中使用from tensorflow import *)路径下创建一个名为hooks的文件夹,文件夹没创建python程序文件hook-tensorflow.py。

--mypython.py

--hooks

  --hook-tensorflow.py

hook-tensorflow.py中的内容如下:

from PyInstaller.utils.hooks import collect_all
def hook(hook_api):
    packages = [
        'tensorflow',
        'tensorflow_core',
        'astor'
    ]
    for package in packages:
        datas, binaries, hiddenimports = collect_all(package)
        hook_api.add_datas(datas)
        hook_api.add_binaries(binaries)
        hook_api.add_imports(*hiddenimports)

 

 

运行pyinstaller时添加参数--additional-hooks-dir=hooks。最终运行的命令为

pyinstaller.exe -F --additional-hooks-dir=hooks mypython.py

参考:

https://stackoverflow.com/questions/60384288/pyinstaller-modulenotfounderror

https://github.com/pyinstaller/pyinstaller/issues/4400#issuecomment-550905592

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章