【问题标题】:DLL load failed with scipy.optimize?DLL 加载因 scipy.optimize 失败?
【发布时间】:2014-05-10 07:50:52
【问题描述】:

我正在尝试从 scipy.optimize 上传 curve_fit 以将指数函数拟合到我生成的一些数据中。我的代码如下:

import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit

当我运行代码时,我收到以下错误:

ImportError: DLL load failed: 找不到指定的模块。

我的计算机上的 Anaconda 文件夹中有 scipy,我 80% 确定我安装了它。如何修复此错误? (或者,如果您有更好的方法将指数函数拟合到数据中,我会全力以赴)

谢谢!

编辑:这是完整的错误:

Traceback (most recent call last):
 File "C:\Users\Casey\Documents\Python\Perc_MatPlot3.py", line 10
    from scipy.optimize import curve_fit
  File "C:\Users\Casey\Anaconda\Lib\site-packages\scipy\optimize\__init__.py", line 146
    from .optimize import *
  File "C:\Users\Casey\Anaconda\Lib\site-packages\scipy\optimize\optimize.py", line 35
    from .linesearch import (line_search_BFGS, line_search_wolfe1,
  File "C:\Users\Casey\Anaconda\Lib\site-packages\scipy\optimize\linesearch.py", line 16
    from scipy.optimize import minpack2
ImportError: DLL load failed: The specified module could not be found.

【问题讨论】:

  • 要么没有正确安装,要么 scipy 不在您的 pythonpath 中,因为该导入应该可以工作。您可以完全导入 scipy,还是只是 scipy.optimize?
  • 请发布 full 错误。你确定你运行的是正确版本的python吗?您是否尝试过重新安装?我已经调整了你的标签,因为这与 matplotlib 无关,但绝对是 Windows 问题。
  • 我对“import scipy”没有任何问题,但我编写的代码产生了错误

标签: python matplotlib scipy


【解决方案1】:

我遇到了错误

    from ._ufuncs import *
ImportError: DLL load failed: The specified module could not be found.

cgoehlke's "Unofficial Windows Binaries for Python Extension Packages" for SciPy 与安装了 pip3 的 NumPy 一起使用时,请忽略此注释:

许多二进制文件依赖于 NumPy-1.9+MKL 和 ...

他们的NumPy 提供了缺失的 DLL/模块。

【讨论】:

  • 在我自己的库之一中导入 scipy.special。在 Spyder 中工作正常,但是当我尝试空闲时 - 哎哟。请发布有关如何安装 MKL 的更多信息。
【解决方案2】:

我最近在尝试使用 pyplot 和 scipy 时遇到了几个类似的问题。我在 Windows 7 x64 上运行 Anaconda 2.7、32 位

我在尝试使用 curve_fit 时遇到了这个确切的错误。我从 sourceforge 下载了“superpack”:http://sourceforge.net/projects/scipy/

运行此安装程序修复了错误,并且没有影响我的 python 环境的任何其他部分。

【讨论】:

    【解决方案3】:

    我遇到了完全相同的问题。

    from scipy.optimize import minpack2
    

    我重新安装了 numpy 和 MLK,但在 Pycharm 上仍然出现此错误。我直接将我的python更新到3.6,现在问题解决了。 在此过程中,使用

    conda install python=3.6
    

    自从

    conda update python
    

    告诉我我已经有了 3.5.2,这意味着 conda 更新无法从 3.5 更新到 3.6,我认为它应该能够从 3.5.1-->3.5.2 之类的版本升级。 希望这会有所帮助。另外,更新后记得重置环境。

    【讨论】:

      【解决方案4】:

      不确定这是否适合你,因为这个错误可能意味着很多事情......我去过那里......

      就在 10 分钟前,我在 Vista x64 机器上全新安装了 Miniconda for Python 3.3 时遇到了同样的错误(也在加载 Scipy 优化时)。不知何故,它未能将主 Python 目录添加到 Windows PATH(我很确定我没有在安装结束时取消选中它的框)。

      本周早些时候,我在一些 XP 和 Windows 7 机器上做了同样的过程,没有任何问题,所以我有点意外。

      如果您的机器上没有安装其他 Python,您可以检查运行“python”(键入 win-key + r,或从命令提示符执行)是否有效。如果没有,只需将主安装目录(python.exe 所在的位置)添加到 PATH 变量中。

      如果这不起作用,您可以使用 Dependency Walker 检查错误消息实际上是关于哪个 DLL,然后查看该 DLL 是否存在于您的 PATHPYTHONPATH 中的某个位置。

      当同一个 DLL 的多个版本使用不同的编译器编译并且没有首先找到所需的版本时,我有相同的 DLL error。如果删除版本(它附带的程序)不是一个选项,那么更改 PATH 变量的顺序会有所帮助。

      【讨论】:

        【解决方案5】:

        这很可能是您安装了 32 位 Python 而安装了 64 位库,反之亦然。

        您需要删除 Python 并重新安装正确的 Python。

        https://www.python.org/download/

        在这里你可以下载 Python。

        请记住,您的 Python 库应该与 Python 的库是相同的 32 位或 64 位。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-02-28
          • 2012-12-21
          • 2012-12-29
          • 2020-09-01
          • 2019-07-10
          • 2015-10-14
          相关资源
          最近更新 更多