關於pyinstaller的打包后錯誤(ModuleNotFoundError: No module named 'tensorflow_core.python及FileNotFoundError:No such file or directory)


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM