1 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 --additional-hooks-dir=hooks mypython.py
參考:
https://stackoverflow.com/questions/60384288/pyinstaller-modulenotfounderror
https://github.com/pyinstaller/pyinstaller/issues/4400#issuecomment-550905592
2 py3.6使用pyinstaller打包執行時報錯FileNotFoundError:No such file or directory
解決辦法有兩個:
最簡單的就是將跟.xx(找不到的文件)相關的整個文件放到dist目錄下(生成的exe在dist目錄下,並且要使用exe時,要挪動一整個dist目錄),執行就OK了。
參考 https://blog.csdn.net/qq_28304687/article/details/88639156