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

3

我在Windows上运行了TensorFlow物体检测的安装。

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

成功安装TensorFlow物体检测后,我运行了以下命令进行测试,并收到了下面的错误信息。如何解决?

python object_detection/builders/model_builder_test.py

错误: 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: 导入pywrap_tensorflow_internal模块时DLL加载失败: 指定的模块无法找到。 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: 导入_pywrap_tensorflow_internal模块时DLL加载失败: 指定的模块无法找到。
目前使用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接口?这个看起来很相关。 - xdhmoore
也许你的tensorflow没有正确安装。你有遇到任何错误吗?这个链接看起来很相关 - xdhmoore
再次提到链接回到TensorFlow安装说明,在那里列出了Visual C++可再发行组件的要求,根据上述两个SO帖子的内容,这似乎与问题有关。可能是这个原因吗? - xdhmoore
有趣,是的,我已经安装了C++包,所以不确定,我会继续寻找。 - mattsmith5
这是另一次尝试:如果您安装了没有C++包的TF,然后重新安装了TF,或者在之后安装了C++包,那么如果TF需要在安装TF时使用该C++包(根据缺失模块的一瞥),那么我不会感到惊讶,因此它可以生成该模块,无论这种推测价值多少... - xdhmoore
1个回答

3
简述:在安装TensorFlow之前,您需要安装安装页面上提到的C++可再发行程序,以便TensorFlow可以在安装时使用它来生成代码。
详细说明:缺少的pywrap_tensorflow_internal.py模块似乎是我所知道的SWIG生成的Python接口到C++库或类似物。 我猜测,当您安装TensorFlow时,该文件会被生成(这让我想起了一些Ruby gem在安装时必须编译C ++的方式,无论那是否有用)。由于您没有该生成的文件,我猜测TensorFlow安装页面上提到的C++软件包需要用于该代码生成,因此您需要在安装TensorFlow之前安装C++软件包。
完全是猜测,但也许您是在安装TF之后安装C++软件包的。在这种情况下,您应该能够卸载TF,安装C++软件包,然后重新安装TF。
也许还有一个问题是,在安装TF时是否有任何有关缺少C++软件包的指示性错误消息,如果没有,则可能应该有。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接