繁体   English   中英

Tensorflow-gpu 与 pyinstaller

[英]Tensorflow-gpu with pyinstaller

试图分发依赖于 tensorflow 的程序...

使用 tensorflow 它可以很好地作为脚本和 pyinstaller 使用。 使用 tensorflow-gpu 它可以作为脚本使用,但不能与 pyinstaller 一起使用。 cuda 和 cudnn dll 已被 pyinstaller 复制到 bundle 文件夹中。

我使用 python 3.6.5 和 tensorflow 1.7.0。 (如果有帮助可以更改版本...)

错误信息:

追溯(最近调用最后):文件“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: No module named 'tensorflow.python._pywrap_tensorflow_internal'

在处理上述异常的过程中,又出现了一个异常:

回溯(最近调用最后):文件“interface.py”,第 14 行,在文件“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__init__.py”中,第 24 行,在文件“c:\users\aleks\appdata\local\programs\python\python36\ lib\site-packages\PyInstaller\loader\pyimod03_importers.py",第 631 行,在 exec_module exec(字节码, module.dict )文件“site-packages\tensorflow\python__init__.py”,第 49 行,在文件“c:\ users\aleks\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 631, in exec_module exec(bytecode, module.dict ) File "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\l oader\pyimod03_importers.py”,第 631 行,在 exec_module exec(字节码,模块。 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: No module named 'tensorflow.python._pywrap_tensorflow_internal'

无法加载本机 TensorFlow 运行时。

请参见https://www.tensorflow.org/install/install_sources#common_installation_problems

出于一些常见的原因和解决方案。 寻求帮助时,请在此错误消息上方包含整个堆栈跟踪。 [10816]无法执行脚本界面

确保您还包装MSVCP140.DLL ,因为从%PATH%中丢失此信息可能会抛出此错误。

在分发tensorflow应用程序时,我倾向于使用cx_Freeze而不是pyinstaller。 一旦你克服了cx_Freeze与scipy的错误,它总体上就更简单了。

也许可以帮助。 我手动将文件_pywrap_tensorflow_internal.pyd重命名为dist文件夹中的tensorflow.python._pywrap_tensorflow_internal.pyd 一切正常。

我通过将dirs设为“... / dist / [MmyPyName] /tensorflow/python/_pywrap_tensorflow_internal.pyd”来修复此问题

  • tensorflow-gpu = 1.10.0
  • python = 3.6.2
  • cuda = 9.0
  • cudnn = 7.3.0

使用 pyinstaller 安装它时,请确保在 .spec 文件中将其作为隐藏导入包含:

hiddenimports=['tensorflow.python._pywrap_tensorflow_internal',],

这会将丢失的模块包含在正确的路径中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM