テンソルフローに依存するプログラムを配布しようとしています...
Tensorflowを使用すると、スクリプトとしてもpyinstallerでもうまく機能します。 tensorflow-gpuを使用すると、スクリプトとして機能しますが、pyinstallerでは機能しません。 cudaおよびcudnndllは、pyinstallerによってバンドルフォルダーにコピーされています。
python 3.6.5およびtensorflow1.7.0を使用します。(役立つ場合はバージョンを変更できます...)
エラーメッセージ:
トレースバック(最後の最後の呼び出し):ファイル "c:\ users\aleks\appdata\local\programs\python\python36\lib\site-のファイル" site-packages\tensorflow\python\pywrap_tensorflow.py "、58行目packages\PyInstaller\loader\pyimod03_importers.py "、631行目、exec_module exec(bytecode、module。dict)ファイル" site-packages\tensorflow\python\pywrap_tensorflow_internal.py "、18行目、ファイル" site-packages\tensorflow\python\pywrap_tensorflow_internal.py "、17行目、swig_import_helperファイル" importlib__init__。py "、126行目、import_module ModuleNotFoundError: 'tensorflowという名前のモジュールはありません.python._pywrap_tensorflow_internal '
上記の例外の処理中に、別の例外が発生しました。
トレースバック(最後の最後の呼び出し):ファイル "c:\ users\aleks\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\loader\pyimod03_importersのファイル" interface.py "、14行目。 py "、631行目、exec_module exec(bytecode、module。dict)ファイル" site-packages\tensorflow__init__。py "、24行目、ファイル"c:\ users\aleks\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\loader\pyimod03_importers.py"、631行目、exec_module exec(bytecode、module。dict)ファイル "c:\ users\aleks\appdata\local\programs\python\python36 \のファイル" site-packages\tensorflow\python__init__。py "、49行目lib\site-packages\PyInstaller\loader\pyimod03_importers.py "、行631、exec_module exec(bytecode、module。dict)ファイル" site- packages\tensorflow\python\pywrap_tensorflow.py "、74行目、ImportError:Traceback(最後の最後の呼び出し):ファイル" site-packages\tensorflow\python\pywrap_tensorflow.py "、58行目、ファイル" c:\ users\aleks\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\loader\pyimod03_importers.py "、631行目、exec_module exec(bytecode、module。dict )ファイル「site-packages\tensorflow\python\pywrap_tensorflow_internal.py」、18行目、ファイル「site-packages\tensorflow\python\pywrap_tensorflow_internal.py」、17行目、swig_import_helperファイル「importlib__init __。py」、126行目、 import_moduleのModuleNotFoundError:「tensorflow.python._pywrap_tensorflow_internal」という名前のモジュールがありません
ネイティブTensorFlowランタイムの読み込みに失敗しました。
https://www.tensorflow.org/install/install_sources#common_installation_problems を参照してください
いくつかの一般的な理由と解決策のために。ヘルプを求めるときは、このエラーメッセージの上にスタックトレース全体を含めてください。 [10816]スクリプトインターフェイスの実行に失敗しました
パッケージングも行っていることを確認してくださいMSVCP140.DLL
、%PATH%からこれが欠落していると、このエラーがスローされる可能性があります。
TensorFlowアプリケーションを配布するときは、pyinstallerの代わりにcx_Freezeを使用する傾向があります。 cx_Freezeがscipyで持つエラーを克服すると、全体的に簡単になります。
「.../dist/[MmyPyName] /tensorflow/python/_pywrap_tensorflow_internal.pyd」としてdirsを作成することでこの問題を修正しました
多分 this 助けになるでしょう。ファイルの名前を手動で変更しました_pywrap_tensorflow_internal.pyd
からtensorflow.python._pywrap_tensorflow_internal.pyd
distフォルダー内。すべてが機能します。