【问题标题】:Tensorflow installation on Windows: DLL load failed while importing _pywrap_tensorflow_internalWindows 上的 TensorFlow 安装:导入 _pywrap_tensorflow_internal 时 DLL 加载失败
【发布时间】:2021-07-19 10:18:18
【问题描述】:

我在 Windows 上运行了 TensorFlow 对象检测安装。

https://medium.com/riow/tensorflow-object-detection-on-windows-ad10bfde217c

成功安装TensorFlow对象检测后,

我运行以下命令进行测试,并在下面收到错误。如何解决这个问题?

python object_detection/builders/model_builder_test.py

错误:回溯(最后一次调用): 文件“C:\TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tensorflow.py”,第 64 行,在 从 tensorflow.python._pywrap_tensorflow_internal 导入 * ImportError: DLL load failed while importing pywrap_tensorflow_internal: 找不到指定的模块。 回溯(最近一次通话最后): 文件“object_detection/builders/model_builder_test.py”,第 21 行,在 从 object_detection.builders 导入 model_builder 文件“c:\testimage\models\research\object_detection\builders\model_builder.py”,第 23 行,在 从 object_detection.builders 导入 anchor_generator_builder 文件“c:\testimage\models\research\object_detection\builders\anchor_generator_builder.py”,第 23 行,在 从 object_detection.anchor_generators 导入 flexible_grid_anchor_generator 文件“c:\testimage\models\research\object_detection\anchor_generators\flexible_grid_anchor_generator.py”,第 17 行,在 导入 tensorflow.compat.v1 作为 tf 文件“C:\TestImage\models\venv\lib\site-packages\tensorflow_init.py”,第 41 行,在 从 tensorflow.python.tools 导入 module_util 作为 module_util 文件“C:\TestImage\models\venv\lib\site-packages\tensorflow\python_init.py”,第 40 行,在 从 tensorflow.python.eager 导入上下文 文件“C:\TestImage\models\venv\lib\site-packages\tensorflow\python\eager\context.py”,第 35 行,在 从 tensorflow.python 导入 pywrap_tfe 文件“C:\TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tfe.py”,第 28 行,在 从 tensorflow.python 导入 pywrap_tensorflow 文件“C:\TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tensorflow.py”,第 83 行,在 引发 ImportError(味精) ImportError: Traceback (最近一次调用最后一次): 文件“C:\TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tensorflow.py”,第 64 行,在 从 tensorflow.python._pywrap_tensorflow_internal 导入 * ImportError: DLL load failed while importing _pywrap_tensorflow_internal: 找不到指定的模块。

目前使用 Python 3.8 和最新的 tensorflow,带有 tensorflow-cpu

【问题讨论】:

  • 身份证。我似乎同时拥有/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/pywrap_tensorflow.py 文件和/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/pywrap_tensorflow_internal.py。我能说的最好的,你的错误来自第一个,而在寻找第二个?看起来它们中的一个或两个都是从名为 SWIG 的东西生成的,我猜它会生成 C/C++ 类的 python 接口? This 看起来很相关。
  • 也许你的 tensorflow 没有正确安装。你那里有任何错误吗? This also looks relevant
  • 再次,链接以链接回 tensorflow 安装说明,there is listed a requirement there for the visual C++ redistributable,基于上述两个 SO 帖子听起来相关。会这样吗?
  • 有趣,是的,我已经安装了 C++ 包,所以不确定,我会继续寻找
  • 这是另一个黑暗中的刺:如果你安装了没有 C++ 包的 TF,然后重新安装了 TF,或者如果你之后安装了 C++ 包,如果 TF 需要那个 C++,我不会感到惊讶在 TF 安装时打包(基于对丢失模块的一瞥),以便它可以生成模块,无论该推测是否值得......

标签: python tensorflow tensorflow2.0


【解决方案1】:

tldr;

您需要在安装 TensorFlow 之前安装提到的 C++ 可再发行组件 on the install page,以便 TensorFlow 可以在安装时使用它来生成代码。

详情:

我不是专家,但听起来这是关键:

在我看来,您缺少的 pywrap_tensorflow_internal.py 模块是 SWIG 生成的 C++ 库的 python 接口,或类似的东西。我的猜测是,当您安装 TensorFlow 时会生成该文件(它让我想起了一些 Ruby gem 在您安装它们时必须编译 C++,不管它有什么价值)。由于您没有生成的文件,我猜想该代码生成需要 TensorFlow 安装页面上提到的 C++ 包,因此您需要在安装 TensorFlow 之前安装 C++ 包

完全是猜测,但也许你在 TF 之后安装了 C++ 包。在这种情况下,您应该可以卸载 TF,安装 C++ 包,然后重新安装 TF。

也许一个挥之不去的问题是,在安装 TF 时是否有任何关于缺少 C++ 包的指示性错误消息,如果没有,也许应该有。

【讨论】:

    猜你喜欢
    • 2021-04-28
    • 2020-09-21
    • 2021-03-04
    • 2018-08-13
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    相关资源
    最近更新 更多