首页 文章

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

提问于
浏览
71

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

  • No module named "_pywrap_tensorflow"

  • DLL load failed.

22 回答

  • 2

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

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

    • 通过检查系统/路径确保您拥有lib MSVCP140.DLL - 如果没有得到它here

    • here运行python 3.5.3-amd64的Windows安装程序 - 不要尝试更新的版本,因为它们可能无法正常工作

    • here获取CUDA 8.0的cuDNN v5.1 - 将其放在用户文件夹下或其他已知位置(您的路径中需要这个)

    • here获取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位版本 .

  • 3

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

  • 1

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

    要修复此错误:

    • 确定 MSVCP140.DLL 是否在 %PATH% 变量中 .

    • 如果 MSVCP140.DLL 中没有 MSVCP140.DLL ,请安装包含此DLL的Visual C++ 2015 redistributable(x64版本) .

  • 2

    我在AMD CPU上有64位Win7 Pro,没有gpu . 我正按照"Installing with native pip"的指示,在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 redistributable .

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

  • 2

    For tensorflow with CPU only:


    我使用命令安装了tensorflow:

    pip3 install --upgrade tensorflow
    

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

    import tensorflow as tf
    

    因此,我使用以下命令将tensorflow版本从 1.7 降级为 1.5

    pip3 install tensorflow==1.5
    

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

    好像, tensorflow 1.7 需要我的CPU does not support AVX instruction

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

  • 1

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

  • 13

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

    C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
    

    Note this is to install the CPU-only version of TensorFlow.

  • 3

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

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

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

    Tensorflow 1.6需要在您的CPU上使用AVX指令 . 在这里验证:Tensorflow Github docs

    启用AVX的CPU:Wiki AVX CPUs

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

    pip install --ignore-installed --upgrade tensorflow-gpu==1.5
    
  • 7

    经过多次试验和错误,并确保可以从PATH访问VC 2015 Redistributable,cuDNN DLL和所有其他依赖项,看起来Tensorflow GPU仅适用于Python 3.5.2 (截至此写作)

    所以,如果你正在使用 Anaconda

    • conda create -n tensorflow-gpu python=3.5.2

    • activate tensorflow-gpu

    • pip install tensorflow-gpu

    然后打开python解释器并验证

    >>> import tensorflow as tf
    >>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    

    找到具有属性的设备0:名称:GeForce 940M major:5 minor:0 memoryClockRate(GHz)1.176 pciBusID 0000:06:00.0总内存:2.00GiB可用内存:1.66GiB

    积分:this neat guide

  • 8

    对我来说问题是cuDNN库与显卡的要求不符 . 我下载了6.0版本但是对于我的GTX980ti但是在nvidia网站上推荐的计算能力是5.1(http://developer.nvidia.com/cuda-gpus)所以我下载了5.1并取代了6.0版本,一旦我完成它就开始工作了 .

  • 1

    对于每个Tensorflow的版本,它需要不同版本的CuDnn . 在www.tensorflow.org上,他们没有在安装指南中提到过这一点!

    我的情况使用tensorflow版本1.3,它使用cuDNN 6. https://github.com/tensorflow/tensorflow/releases .

    如果它们匹配,请检查您的tensorfow版本和cuDNN版本 .

    请为cuDNN设置路径环境,如果仍然无效,请查看@Chris Han的评论 .

  • 73

    人们可能想要在Windows上保持Powershell / cmd打开 . 我花了一些合理的时间,直到我决定关闭并重新开启我的Powershell,才意识到我已经做好了一切 .

  • 1

    如果您尝试在Windows中安装tensorflow GPU,您可以找到this简单有趣的教程 .

    注意:例如,如果您使用PyCharm,则必须将解释器更改为创建的conda环境 .

  • 1

    我在Windows系统上发布了this post中解决"DLL load failed"问题的一般方法 .

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

    • 查找缺少的DLL的信息并安装相应的软件包以解决问题 .

  • 1

    Dll没找到 . 安装Visual C 2015可再发行以修复 .

  • 6

    问题是我的cuDNN图书馆 . 在Windows PATH中添加cuDNN DLL(不是LIB文件)的目录(可能是bin文件夹)后,我能够运行the test code .

    作为参考,我使用PIP和我的操作系统从源代码安装了TensorFlow:Windows 7和IDE:Visual Studio 2015 .

  • 4

    使用TensorFlow版本1.3.0,您需要使用Cudnn 6.0而不是Cudnn 5.0,因为Cudnn 5.0会出现此错误 . 不要忘记将路径变量添加到Cudnn 6.0 . 使用cudnn64_6.dll,您的Tensorflow将正常工作 . 阅读以下链接 . https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md#release-130

  • 20

    我的两分钱:

    尝试在Windows 7上正确安装我的CUDA 8.0时遇到了很多问题 . 我安装了以前的版本,我想升级,所以我卸载它并尝试安装CUDA 8.0(针对tensorflow 1.3) . 安装每次都失败,我试图降级到CUDA 7.5并且能够安装它但是有一些tensorflow问题(类似于这里描述的PATH问题) . 长话短说:对我有用的是:

    1)卸载每个NVIDIA组件(显示图形驱动程序除外)

    2)下载CUDA工具包8.0(和补丁)https://developer.nvidia.com/cuda-downloads

    3)检查CheckSum MD5(我使用了MS https://www.microsoft.com/en-ca/download/confirmation.aspx?id=11533,但任何人都会这样做)以确保它们没问题(因为我的WiFi路由器显然没有正确下载安装程序几次) .

    4)以root身份运行CUDA工具包安装程序

    5)下载cudnn 8.0 v6并将其位置添加到PATH变量https://developer.nvidia.com/rdp/cudnn-download

    希望能帮助并节省一些麻烦......

    注意:这个脚本帮助我调试了很多问题! (谢谢mrry)https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c

  • 0

    我会尝试给出对我有用的解决方案 . 似乎不同的问题可能会导致这种情况 .

    32位软件在64位操作系统中工作 . 我在我的64位操作系统中安装了anaconda-3(32位) . 它工作得非常好 . 我决定在我的机器上安装tensorflow,它最初不会安装 . 我正在使用conda环境来安装tensorflow并得到了这个错误 .

    解决方案是 if you are running 64 bit OS, install 64 bit anaconda and if 32 bit OS then 32 bit anaconda . 然后按照tensorflow网站上提到的windows(anaconda安装)中提到的标准程序进行操作 . 这使得可以毫无问题地安装张量流 .

  • 5

    我的答案仅适用于Windows 10用户,因为我在Windows 10上尝试过以下操作 . 扩展上面的一些答案我建议:如果你使用anaconda然后你可以避免一切,只需使用命令安装 anaconda-navigator

    conda install -c anaconda anaconda-navigator
    

    然后,您可以使用该命令从命令提示符启动导航器

    anaconda-navigator
    

    在运行此命令时,您将获得一个简单的gui,您可以在其中创建一个虚拟环境,使用python = 3.5.2创建环境并通过使用gui在搜索框中搜索模块来安装模块tensorflow-gpu或tensorflow,它也会照顾为您安装正确的cuda文件 . 使用anaconda导航仪是最简单的解决方案 .

    如果您不使用anaconda,请注意以下事项

    tensorflow-gpu 1.3需要python 3.5.2,cuda开发工具包8.0和cudaDNN 6.0,因此在安装时请确保运行命令

    pip install tensorflow-gpu==1.3
    

    tensorflow-gpu 1.2.1或更低版本需要python 3.5.2,cuda开发工具包8.0和cudaDNN 5.1因此在安装时请确保运行命令

    pip install tensorflow-gpu==1.2.1
    

    以下是您需要遵循的上述两个过程的步骤设置路径变量您必须具有以下系统变量

    CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"
    CUDA_PATH = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"
    CUDA_PATH_V8.0 = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"
    

    PATHTEXT必须包含“.DLL”以及其他扩展名

    ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.DLL"
    

    同时在您的路径中添加以下内容

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64;
    C:\Windows\SysWOW64;
    C:\Windows\System32
    

    如果您收到错误,可以通过mrry下载运行以下代码,此代码将检查您的设置并告诉您是否有错误https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c

    参考文献:http://blog.nitishmutha.com/tensorflow/2017/01/22/TensorFlow-with-gpu-for-windows.html

    以上参考非常有用 . 请评论此答案的改进 . 希望这有帮助,谢谢 .

  • 1

    tensorflow 1.3还不支持 cuda 9.0 . 我降级到 cuda 8.0 ,然后它工作 .

  • 8

    对于2019年发现这篇文章的人来说,这个错误也可能发生,因为Python版本3.7不支持TensorFlow(参见https://www.tensorflow.org/install/pip) . 所以,检查Python版本:

    python --version
    

    如果它大于3.6,它应降级到3.6 . 对于Anaconda:

    conda install python=3.6
    

    然后,安装TensorFlow .

    pip install tensorflow
    

    顺便说一下,我没有GPU版本,所以在我的案例中没有CUDA相关的问题 .

相关问题