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



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

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

在成功安装TensorFlow对象检测后,

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

python object_detection/builders/model_builder_test.py

错误:Traceback(最后一次调用(:文件";C: \TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tensorflow.py",第64行,in来自tensorflow.python.pywrap_tensorflow_internal导入*ImportError:导入pywrap_tensorflow_internal时DLL加载失败:找不到指定的模块。追踪(最近一次通话(:文件";object_detection/builder/model_builder_test.py";,第21行,in从object_detection.builders导入model_builder文件";c: \testimage\models\research\object_detection\builders \model_builder.py";,第23行,in从object_detection.builders导入anchor_generator_builder文件";c: \testimage\models\research\object_detection\builders\anchor_generator_builder.py";,第23行,in从对象检测anchor_generators导入flexible_grid_anchor_generator文件";c: \testimage\models\research\object_detection\anchor_generator\flexible_grid_anchor_gnerator.py";,第17行,in将tensorflow.compat.v1导入为tf文件";C: \TestImage\models\venv\lib\site-packages\tensorflow_init.py";,第41行,in从tensorflow.python.tools将module_util导入为module_util文件";C: \TestImage\models\venv\lib\site-packages\tensorflow\python_init.py";,第40行,in来自tensorflow.python.渴望导入上下文文件";C: \TestImage\models\venv\lib\site-packages\tensorflow\python\earce\context.py",第35行,in从tensorflow.python导入pywrap_tfe文件";C: \TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tfe.py",第28行,in从tensorflow.python导入pywrap_tensorflow文件";C: \TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tensorflow.py",第83行,in引发ImportError(消息(ImportError:Traceback(最后一次调用(:文件";C: \TestImage\models\venv\lib\site-packages\tensorflow\python\pywrap_tensorflow.py",第64行,in来自tensorflow.python.pywrap_tensorflow_internal导入*导入错误:导入_pywrap_tensorflow_internal时DLL加载失败:找不到指定的模块。

当前使用最新tensorflow的Python 3.8,带有tensorflow cpu

tldr

在安装TensorFlow之前,您需要安装安装页面中提到的C++可再发行文件,以便TensorFlow可以在安装时使用它生成代码。

详细信息:

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

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

完全是猜测,但也许你在TF之后安装了C++包。在这种情况下,你应该能够卸载TF,安装C++包,然后再次安装TF。

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

最新更新