Windows 上的 Tensorflow 安装:导入 _pywrap_tensorflow_internal 时 DLL 加载失败

Tensorflow installation on Windows: DLL load failed while importing _pywrap_tensorflow_internal

我运行通过TensorFlow对象检测安装Windows。

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

成功安装TensorFlow对象检测后,

我运行下面的命令进行测试,收到下面的错误。如何解决?

python object_detection/builders/model_builder_test.py

Error: Traceback (most recent call last): File "C:\TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 64, in from tensorflow.python._pywrap_tensorflow_internal import * ImportError: DLL load failed while importing pywrap_tensorflow_internal: The specified module could not be found. Traceback (most recent call last): File "object_detection/builders/model_builder_test.py", line 21, in from object_detection.builders import model_builder File "c:\testimage\models\research\object_detection\builders\model_builder.py", line 23, in from object_detection.builders import anchor_generator_builder File "c:\testimage\models\research\object_detection\builders\anchor_generator_builder.py", line 23, in from object_detection.anchor_generators import flexible_grid_anchor_generator File "c:\testimage\models\research\object_detection\anchor_generators\flexible_grid_anchor_generator.py", line 17, in import tensorflow.compat.v1 as tf File "C:\TestImage\models\venv\lib\site-packages\tensorflow_init.py", line 41, in from tensorflow.python.tools import module_util as module_util File "C:\TestImage\models\venv\lib\site-packages\tensorflow\python_init.py", line 40, in from tensorflow.python.eager import context File "C:\TestImage\models\venv\lib\site-packages\tensorflow\python\eager\context.py", line 35, in from tensorflow.python import pywrap_tfe File "C:\TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tfe.py", line 28, in from tensorflow.python import pywrap_tensorflow File "C:\TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 83, in raise ImportError(msg) ImportError: Traceback (most recent call last): File "C:\TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 64, in from tensorflow.python._pywrap_tensorflow_internal import * ImportError: DLL load failed while importing _pywrap_tensorflow_internal: The specified module could not be found.

目前正在使用 Python 3.8 和最新的 tensorflow,以及 tensorflow-cpu

tldr;

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

详情:

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

在我看来,您缺少的 pywrap_tensorflow_internal.py 模块是 SWIG 生成的 python C++ 库接口,或者类似的东西。我的猜测是,该文件是在您安装 TensorFlow 时生成的(这让我想起了某些 Ruby gems 在安装时必须编译 C++,无论其价值如何)。由于您没有生成的文件,我的猜测是该代码生成需要 TensorFlow 安装页面上提到的 C++ 包,因此您需要在 之前安装 C++ 包安装 TensorFlow。

完全是猜测,但也许你在 TF 之后安装了 C++ 包。那样的话,你应该可以卸载TF,安装C++包,然后再安装TF。

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