![](/img/trans.png)
[英]Python PyInstaller 4.0 packaging TensorFlow 2.0 project not working ImportError: cannot import name 'pywrap_tensorflow'
[英]ImportError: cannot import name 'pywrap_tensorflow'
我试图使用 pyinstaller 制作一个 .py 到 .exe 文件。 构建 exe 文件后,当我尝试通过 cmd 运行 .exe 文件时,它会显示以下错误。
D:\Ne folder\New folder\GuiExe>GuiExe.exe
Using TensorFlow backend.
Traceback (most recent call last):
File "GuiExe.py", line 4, in <module>
File "c:\users\manash\tesorflow\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\keras\__init__.py", line 3, in <module>
File "c:\users\manash\tesorflow\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\keras\utils\__init__.py", line 6, in <module>
File "c:\users\manash\tesorflow\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\keras\utils\conv_utils.py", line 9, in <module>
File "c:\users\manash\tesorflow\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\keras\backend\__init__.py", line 1, in <module>
File "c:\users\manash\tesorflow\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\keras\backend\load_backend.py", line 90, in <module>
File "c:\users\manash\tesorflow\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\keras\backend\tensorflow_backend.py", line 5, in <module>
File "c:\users\manash\tesorflow\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\tensorflow\__init__.py", line 101, in <module>
File "c:\users\manash\tesorflow\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\tensorflow_core\__init__.py", line 40, in <module>
File "lib\site-packages\tensorflow\__init__.py", line 50, in __getattr__
File "lib\site-packages\tensorflow\__init__.py", line 44, in _load
File "importlib\__init__.py", line 126, in import_module
File "c:\users\manash\tesorflow\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\tensorflow_core\python\__init__.py", line 49, in <module>
ImportError: cannot import name 'pywrap_tensorflow'
[1764] Failed to execute script GuiExe
Ps 我还绑定了 --hidden-import pywrap_tensorflow 和 --paths pywrap_tensorflow.py 文件所在的位置。
我的 PY 到 EXE 命令是
pyinstaller --paths C:/Users/Manash/tesorflow/Lib/site-packages/tensorboard/compat/tensorflow_stub/pywrap_tensorflow.py --hidden-import pkg_resources.py2_warn --hidden-import pywrap_tensorflow --add-data "C:/Ne folder/train_with_vali_test_model_6_111(GLOVES)_soreo-ou_test.pckle";. GuiExe.py
我的 python 版本# 3.5.4 Tensorflow 版本# 2.1.0 keras 版本# 2.3.1
请帮助我,告诉我应该提供更多信息,或者我应该提供哪些信息。 为了得到解决方案。 提前致谢。
您可以尝试此处所述的解决方案。
根据讨论:
步骤1:创建这样的目录结构:
- main.py # Your code goes here
- hooks
- hook-tensorflow.py
第 2 步:将以下内容复制到 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)
第三步:编译时添加命令行选项--additional-hooks-dir=hooks
第 4 步:只需将完整的导入名称添加到包列表中。
main.py 文件包含以下from tensorflow import *
代码from tensorflow import *
我通过更改 Python(3.7 到 3.5)、tensorflow(2 到 1.15)版本解决了这个错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.