【问题标题】:ImportError: DLL load failed: The specified module could not be foundImportError:DLL 加载失败:找不到指定的模块
【发布时间】:2013-12-10 16:45:35
【问题描述】:

我已经安装了 Python 2.5.4、Numpy 1.5.0 win32、Matplotlib 1.0.0 win32、pywin32 218。仍然无法在 Python 中绘制图形。这是我得到的错误:

      import pylab
   File "C:\Python25\lib\site-packages\pylab.py", line 1, in <module>
      from matplotlib.pylab import *
   File "C:\Python25\lib\site-packages\matplotlib\pylab.py", line 216, in <module>
      from matplotlib import mpl  # pulls in most modules
   File "C:\Python25\lib\site-packages\matplotlib\mpl.py", line 1, in <module>
      from matplotlib import artist
   File "C:\Python25\lib\site-packages\matplotlib\artist.py", line 6, in <module>
      from transforms import Bbox, IdentityTransform, TransformedBbox, TransformedPath
   File "C:\Python25\lib\site-packages\matplotlib\transforms.py", line 34, in <module>
      from matplotlib._path import affine_transform
ImportError: DLL load failed: The specified module could not be found.

请帮忙..

【问题讨论】:

  • 你是怎么安装的?这看起来像一些 c 扩展没有正确编译/安装。
  • 对于 Windows 上的科学 Python,最好的办法是安装 WinPython、Python(x,y)、Enthought Python 或 Anaconda,而不是尝试手动安装所有东西。其中任何一个都将安装您可能需要的大多数软件包,并且应该正确配置它们。
  • 使用 Dependency Walker 加载 ...\site-packages\matplotlib\_path.pyd 可能会为您提供一些关于哪个 DLL 的线索。如果它全部编译正确,它也可能是 PATH 问题,可能会选择另一个版本的 DLL,因为它在 PATH 变量中“首先”出现。这个站点有很好的 Windows 预编译二进制文件:lfd.uci.edu/~gohlke/pythonlibs
  • 感谢大家回答我的问题,但实际问题不同,我找到了解决方案。

标签: python numpy matplotlib


【解决方案1】:

(我从视频中找到了这个答案:http://www.youtube.com/watch?v=xmvRF7koJ5E

  1. 从网上下载msvcp71.dllmsvcr71.dll

  2. 将它们保存到您的 C:\Windows\System32 文件夹中。

  3. 也将它们保存到您的 C:\Windows\SysWOW64 文件夹中(如果您有 64 位操作系统)。

现在尝试在 Python 中运行您的代码文件,它会在几秒钟内加载图表。

【讨论】:

  • 拯救了我的一天!但是为什么它会从正确的路径中拾取呢?
  • 如果不是这样,请@JFFIGK 提出解决方案。
  • 也许比这更简单?当我在另一个上下文中遇到同样的错误时,我跟着stackoverflow.com/questions/44537131/… 和@User1024 的答案,添加了一个 Path 变量。
  • 请不要相信在某些 YouTube 视频中找到的 dll - 这是一个非常危险的解决方案。如果可能,请从 Microsoft 官方来源安装所需的 dll。
  • 嗨。我试过这个,但是,它并没有解决我的问题。不知道为什么。
【解决方案2】:

我在 Win 64 上使用 Python 3.5.1 导入 matplotlib.pylab 时遇到了同样的问题。从此链接安装 Visual C++ Redistributable für Visual Studio 2015:https://www.microsoft.com/en-us/download/details.aspx?id=48145 修复了丢失的 DLL。

我发现它比下载和粘贴 DLL 更好、更容易。

【讨论】:

  • 在 Windows 7 和 python.org 的 Python 3.7.6 上遇到了类似的 spacy 问题。堆栈跟踪是文件“C:\Users\user_profile\Desktop\new_pro\venv\lib\site-packages\spacy\pipeline_init_.py”,第 4 行,来自 .pipes 导入的 标记器,DependencyParser,EntityRecognizer,EntityLinker 文件“pipes.pyx”,第 1 行,在 init spacy.pipeline.pipes ImportError:DLL 加载失败:找不到指定的模块。通过上面的链接,它终于奏效了。你拯救了我的一天!
【解决方案3】:

对于Windows 10 x64 Python

打开 Visual Studio x64 命令提示符,并使用 dumpbin:

dumpbin /dependents [Python Module DLL or PYD file]

如果您没有安装 Visual Studio,可以在其他地方下载 dumpbin,或使用其他实用程序,例如 Dependency Walker

请注意,所有其他答案(迄今为止)只是在黑暗中随机刺伤,而这种方法更接近于具有夜视功能的狙击步枪。

案例研究 1

  1. 我为我使用 C++ 使用 MSVC 和 CMake 编写的 Python 模块打开了 Address Sanitizer

  2. 它给出了这个错误:ImportError: DLL load failed: The specified module could not be found

  3. 打开了 Visual Studio x64 命令提示符。

  4. 在Windows下,.pyd文件是伪装的.dll文件,所以我们要对这个文件运行dumpbin。

  5. cd MyLibrary\build\lib.win-amd64-3.7\Debug

  6. dumpbin /dependents MyLibrary.cp37-win_amd64.pyd 打印这个:

    Microsoft (R) COFF/PE Dumper Version 14.27.29112.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    
    Dump of file MyLibrary.cp37-win_amd64.pyd
    
    File Type: DLL
    
      Image has the following dependencies:
    
        clang_rt.asan_dbg_dynamic-x86_64.dll
        gtestd.dll
        tbb_debug.dll
        python37.dll
        KERNEL32.dll
        MSVCP140D.dll
        VCOMP140D.DLL
        VCRUNTIME140D.dll
        VCRUNTIME140_1D.dll
        ucrtbased.dll
    
      Summary
    
         1000 .00cfg
        D6000 .data
         7000 .idata
        46000 .pdata
       341000 .rdata
        23000 .reloc
         1000 .rsrc
       856000 .text
    
  7. 搜索clang_rt.asan_dbg_dynamic-x86_64.dll,复制到同目录,问题解决。

  8. 或者,可以update the environment variable PATH 指向缺少 .dll 的目录。

请随时在此处添加您自己的案例研究!我已将其设为社区 wiki 答案。

【讨论】:

  • 它看起来像“readelf -d”。有什么方法可以从“dumpbin”查看有关可能的负载状态的信息?类似“ldd”
  • 这帮助我修复了问题,但我必须检查我的 dll 的依赖关系(我使用了需要 libstdc++、libwinpthread 和 libgcc 的 Qtcore)。文件夹中没有这些 dll 会导致导入错误。跨度>
  • @f222 是的,这也可以。 Dumpbin 只是检查 DLL 依赖关系的一种方法,还有其他方法。
  • 这个答案值得更多的支持。它提供了有关任何ImportError 问题的见解,其中这是结果页面的顶部。
【解决方案4】:

简而言之,这意味着您缺少一些您想要使用的库的“依赖项”。在尝试使用任何类型的库之前,建议首先查看它是否需要 python "family" 中的另一个库。 什么意思?

我避免下载“dll”。 我对另一个库“kivy”也有同样的问题。 当我想使用 Python 3.4v 而不是 3.5 时出现问题 在 3.5 中一切正常,但我只想使用 kivy 的稳定版本,即 3.4,因为他们正式“建议”。所以,我切换到 3.4,但后来我遇到了同样的“dll”错误,说很多东西都丢失了。于是查了一下网站,得知需要从kivy官网安装额外的“依赖”,问题就解决了。

【讨论】:

    【解决方案5】:

    安装Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019 为我解决了类似的问题,并帮助解决了另一个(略有不同的)驱动程序问题。

    【讨论】:

      【解决方案6】:

      快速说明: 检查您是否有其他 Python 版本,如果您已删除它们,请确保您做对了。如果你的系统上有 Miniconda,那么 Python 将不会被轻易删除。

      什么对我有用:删除了其他 Python 版本和 Miniconda,重新安装了 Python 和 matplotlib 库,一切正常。

      【讨论】:

        【解决方案7】:

        我安装了vc++ 解决了这个问题。

        【讨论】:

          【解决方案8】:

          我刚刚卸载了我当前的 numpy 并从 this 链接安装了一个轮子 numpy。

          这解决了我的问题。我想我们不应该使用随机来源的 dll

          【讨论】:

            【解决方案9】:

            重新安装相关包。

            我对 numpy 有同样的问题。我先卸载了它:

            pip uninstall numpy
            

            然后重新安装

            pip install numpy==1.20.1
            

            我需要那个特定的版本。如果要安装其他numpy版本,可以忽略==1.20.1

            另外,在安装过程中,我收到了诸如

            之类的错误

            statsmodels 0.12.2 需要 patsy>=0.5,未安装。

            我也安装了那些缺少的先决条件。例如,

            pip install patsy
            

            【讨论】:

              【解决方案10】:

              这可能是您的计算机中缺少适用于 Visual Studio 2015、2017、2019 和 2022 的 Microsoft Visual C++ Redistributable 包的问题。使用以下链接下载分发包并将其安装到您的计算机中。

              VC_redist.x64.exe

              更多:Microsoft Visual C++ Redistributable Latest Supported Downloads

              【讨论】:

                猜你喜欢
                • 2016-08-19
                • 2016-08-22
                • 2018-10-23
                • 2020-04-18
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多