TensorFlow ImportError:导入_pywrap_tensorflow_internal时DLL加载失败:找不到指定的模块
Posted
技术标签:
【中文标题】TensorFlow ImportError:导入_pywrap_tensorflow_internal时DLL加载失败:找不到指定的模块【英文标题】:TensorFlow ImportError: DLL load failed while importing _pywrap_tensorflow_internal: The specified module could not be found 【发布时间】:2021-03-04 17:32:19 【问题描述】:系统规格:
Python==3.8.5 tensorflow==2.3.1我正在尝试导入 tensorflow...但我收到导入错误。请帮我解决问题。我试着关注...
pip uninstall tensorflow
和
pip install tensorflow
当我执行pip freeze
时,我看到安装的 tensorflow 包具有指定版本。
错误信息:
ImportError Traceback (most recent call last)
~\anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py in <module>
63 try:
---> 64 from tensorflow.python._pywrap_tensorflow_internal import *
65 # This try catch logic is because there is no bazel equivalent for py_extension.
ImportError: DLL load failed while importing _pywrap_tensorflow_internal: The specified module could not be found.
During handling of the above exception, another exception occurred:
ImportError Traceback (most recent call last)
<ipython-input-1-d6579f534729> in <module>
----> 1 import tensorflow
~\anaconda3\lib\site-packages\tensorflow\__init__.py in <module>
39 import sys as _sys
40
---> 41 from tensorflow.python.tools import module_util as _module_util
42 from tensorflow.python.util.lazy_loader import LazyLoader as _LazyLoader
43
~\anaconda3\lib\site-packages\tensorflow\python\__init__.py in <module>
38 # pylint: disable=wildcard-import,g-bad-import-order,g-import-not-at-top
39
---> 40 from tensorflow.python.eager import context
41
42 # pylint: enable=wildcard-import
~\anaconda3\lib\site-packages\tensorflow\python\eager\context.py in <module>
33 from tensorflow.core.protobuf import config_pb2
34 from tensorflow.core.protobuf import rewriter_config_pb2
---> 35 from tensorflow.python import pywrap_tfe
36 from tensorflow.python import tf2
37 from tensorflow.python.client import pywrap_tf_session
~\anaconda3\lib\site-packages\tensorflow\python\pywrap_tfe.py in <module>
26
27 # pylint: disable=invalid-import-order,g-bad-import-order, wildcard-import, unused-import
---> 28 from tensorflow.python import pywrap_tensorflow
29 from tensorflow.python._pywrap_tfe import *
~\anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py in <module>
81 for some common reasons and solutions. Include the entire stack trace
82 above this error message when asking for help.""" % traceback.format_exc()
---> 83 raise ImportError(msg)
84
85 # pylint: enable=wildcard-import,g-import-not-at-top,unused-import,line-too-long
ImportError: Traceback (most recent call last):
File "C:\Users\user\anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 64, in <module>
from tensorflow.python._pywrap_tensorflow_internal import *
ImportError: DLL load failed while importing _pywrap_tensorflow_internal: The specified module could not be found.
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/errors
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.```
【问题讨论】:
【参考方案1】:使用 Anaconda 安装 Tensorflow,
使用 Python 3.8 为 Tensorflow 创建单独的环境
conda create --name tf python=3.8 tensorflow
conda activate tf
【讨论】:
谢谢 :) 它正在工作。但我无法在 jupyter notebook 中加载 TF 查看 Jupyter notebook 是在哪个环境中打开的。如果它与 tf 环境不同,请在此处全新安装 Tensorflow。谢谢【参考方案2】:我不小心删除了这个文件。像pip uninstall tensorflow==2.3.0
一样卸载TensorFlow 并再次安装pip install tensorflow==2.3.0
解决了这个问题。不要忘记重启内核
【讨论】:
【参考方案3】:添加我的解决方法/hack (TF 2.5.0
),以防它帮助某人:
在我的例子中,我已经安装了十几个 Visual C++ Redistributables('05、'08、...一直到 2017 年)——但 TF 仍然因臭名昭著的 ImportError: DLL load failed while importing _pywrap_tensorflow_internal: The specified module could not be found
错误而失败。我不想下载和安装另一个可再发行组件,只是为了让 TF 正常工作。 (此外,我已经遇到了几个帖子,足以让人怀疑安装它是否真的可以解决问题。)
根据this SO post,有问题的失败_pywrap_tensorflow_internal.pyd
只是另一个DLL;所以我
-
已下载(仅 468 KB)并运行 Dependency Walker 以检测上述 PYD 请求了哪些 DLL。
除了通常提到的
vcruntime140.dll
,PYD 还依赖于vcruntime140_1.dll
。
vcruntime140.dll
在C:/Windows/System32/
中可用(使用where vcruntime140.dll
检查),但在vcruntime140_1.dll
中不可用;所以我在我的系统分区 C: 上进行了搜索,并在其他地方发现了几个 vcruntime140_1.dll
的副本,主要在我的主目录的 AppData/Local/
(用户安装的应用程序)中。
几乎所有这些应用程序都是“受信任的”应用程序(WhatsApp、MS Teams ......),所以我只是将其中一个中的 vcruntime140_1.dll
复制到了 C:/Windows/System32/
- 并且错误消失了。
因此,即使所有记录的要求都已满足,如果您仍遇到此错误,请进行一些调试以找出错误的原因。它可能会为您节省大量的挫败感和浪费的带宽。
【讨论】:
以上是关于TensorFlow ImportError:导入_pywrap_tensorflow_internal时DLL加载失败:找不到指定的模块的主要内容,如果未能解决你的问题,请参考以下文章
TensorFlow ImportError:导入_pywrap_tensorflow_internal时DLL加载失败:找不到指定的模块
ImportError: 当使用pyinstaller创建一个.exe时,无法导入名称'pywrap_tensorflow'。
导入tensorflow.出现importError: DLL load failed: 找不到指定的模块。python3.7
ImportError:来自“tensorflow.python.profiler”的“trace”