在Windows上,运行"import tensorflow"会生成名为"_pywrap_tensorflow"的无模块错误

Bar*_*erg 76 tensorflow

在Windows上,TensorFlow在执行import tensorflow语句后报告以下错误中的一个或两个:

  • No module named "_pywrap_tensorflow"
  • DLL load failed.

Dro*_*Hit 75

问题是cuDNN库对我来说 - 无论出于什么原因cudnn-8.0-windows10-x64-v6.0不工作 - 我用cudnn-8.0-windows10-x64-v5.1 - 一切都好!

我的设置使用Win10 64和Nvidia GTX780M:

  • 通过检查您的系统/路径确保您拥有lib MSVCP140.DLL - 如果没有在此处获取它
  • 这里运行python 3.5.3-amd64的Windows安装程序- 不要尝试更新的版本,因为它们可能无法正常工作
  • 此处获取CUDA 8.0的cuDNN v5.1 - 将其放在用户文件夹下或其他已知位置(您将在路径中使用此文件)
  • 这里获取CUDA 8.0 x86_64
  • 按预期设置PATH变量指向cuDNN libs和python(python路径应该在python安装期间添加)
  • 确保PATHEXT变量中包含".DLL"
  • 如果您使用的是tensorflow 1.3,那么您想使用cudnn64_6.dll github.com/tensorflow/tensorflow/issues/7705

如果您运行Windows 32,请确保获得上述文件的32位版本.

  • 我只花了4个小时调试这个,如果你使用tensorflow 1.3然后你想使用cudnn64_6.dll https://github.com/tensorflow/tensorflow/issues/7705 (8认同)
  • 对大多数人来说可能是显而易见的,但CUDA DLL是'cudnn64_5.dll',它所在的文件夹需要在路径中..而不是父文件夹.我把它放在'%USERPROFILE%\ AppData\Local\cuda\bin;'中 (7认同)
  • 添加到PATH后,请记住关闭命令提示符并再次打开它.此外,值得在命令提示符下键入"cudnn64_5.dll"以确保正确设置路径. (6认同)
  • Chris Barret的评论解决了它 - 如果你在2017年8月之后安装,你可能需要cuDNN v6,0而不是5或7. (2认同)
  • 就我而言,python 3.5.4也有效.在删除vs17并安装visual studio 15(win10)之前,我无法安装cuda 8.0.我必须逐个找到并安装旧版本真的很荒谬. (2认同)

Vit*_*aly 20

在我的情况下,/ bin文件夹中的"cudnn64_6.dll"文件必须重命名为"cudnn64_5.dll"才能使错误消失.我轻松花了两个小时来解决这个问题,然后我按照正式的安装指南来写信.通过pip(官方支持)和conda(社区支持)进行安装时都是如此.


Bar*_*erg 13

这两个错误都表示您的系统尚未安装MSVCP140.DLL,TensorFlow需要该系统.

要修复此错误:

  1. 确定是否MSVCP140.DLL在您的%PATH%变量中.
  2. 如果MSVCP140.DLL不在您%PATH%身份,请安装包含此DLL 的 Visual C++ 2015可再发行组件(x64版本).

  • 您可以通过在命令提示符下键入以下内容来检查MSVCP140.dll是否在您的路径中:其中MSVCP140.DLL (6认同)

小智 9

我在AMD CPU上有64位Win7 Pro,没有gpu.我按照https://www.tensorflow.org/install/install_windows上的 "使用原生点安装"中的说明进行操作.安装步骤没问题,但导入tensorflow的尝试产生了臭名昭着:

ImportError:没有名为'_pywrap_tensorflow_internal'的模块

这似乎是许多无关的事情可能出错的情况之一,这取决于配置,所有这些都会导致同样的错误.

就我而言,安装MSVCP140.DLL就是答案.

如果(a)你有一个文件C:\ Windows\System43\MSVCP140.DLL,你有MSVCP140.DLL,如果你有一个64位系统,则(b)你还有C:\ Windows\SysWOW64\MSVCP140. DLL.

我手动安装它,这是不必要的(可再发行组件不是整个Visual C++开发混乱并且不大).使用此线程前面发布的链接来安装它:Visual C++ 2015可再发行组件.

此外,我建议您覆盖Python的默认安装目录并将其放在C:\ Program Files下的任何位置,因为Windows会尝试在那里写保护文件,这会导致以后出现问题.


Rak*_*Haq 9

仅适用于CPU的tensorflow:


我使用命令安装了tensorflow:

pip3 install --upgrade tensorflow
Run Code Online (Sandbox Code Playgroud)

这已安装tensorflow 1.7
但无法导入使用的tensorflow python 3.6.5 amd64:

import tensorflow as tf
Run Code Online (Sandbox Code Playgroud)

因此,我将tensorflow版本降级1.71.5使用以下命令:

pip3 install tensorflow==1.5
Run Code Online (Sandbox Code Playgroud)

这将卸载以前的版本并安装1.5.现在它有效.

似乎,我的CPU不支持所需的AVX指令tensorflow 1.7

MSVCP140.DLL在环境变量的PATHEXT变量的系统文件夹和.DLL中.


小智 7

cuDNN引起了我的问题.PATH变量对我不起作用.我必须将我的cuDNN文件夹中的文件复制到尊重的CUDA 8.0文件夹结构中.


Fah*_*ima 6

TensorFlow需要MSVCP140.DLL,可能没有安装在您的系统上.要解决此问题,请打开终端输入或粘贴此链接:

C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl 
Run Code Online (Sandbox Code Playgroud)

请注意,这是安装仅CPU版本的TensorFlow.


小智 5

对于那些在旧硬件上运行的人:

由于使用tensorflow-gpu 1.6的旧CPU,可能会出现同样的错误.

如果你的cpu是在2011年之前制作的,那么你的max tensorflow-gpu版本是1.5.

Tensorflow 1.6需要在您的CPU上使用AVX指令.在此验证:Tensorflow Github文档

启用AVX的CPU: Wiki AVX CPU

我在conda环境中为tensorflow做了什么:

pip install --ignore-installed --upgrade tensorflow-gpu==1.5
Run Code Online (Sandbox Code Playgroud)


GZ0*_*GZ0 5

我在这篇文章中发布了在 Windows 系统上解决“DLL 加载失败”问题的一般方法。以供参考:

  1. 使用 DLL 依赖关系分析器Dependency来分析<Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd并确定确切缺失的 DLL(由?DLL 旁边的 指示)。.pyd 文件的路径基于我安装的 TensorFlow 1.9 GPU 版本。我不确定其他 TensorFlow 版本中的名称和路径是否相同。

  2. 查找丢失的 DLL 的信息并安装适当的软件包来解决问题。


归档时间:

查看次数:

140050 次

最近记录:

6 年,2 月 前