13

我是 Python 新手,刚刚为我的 Python3.3 系统(64 位)安装了 cvxopt 模块。安装成功,但是当我输入"import cvxopt"Python命令行时,它返回了一个错误:

文件“C:\Program Files (x86)\Python\lib\site-packages\cvxopt__init__.py”,第 33 行,在 import cvxopt.base ImportError: DLL load failed: 找不到指定的模块。

谁能帮我解决这个问题?非常感谢!

4

10 回答 10

10

在导入 cvxopt 之前需要先导入 numpy。

import numpy
import cvxopt
于 2014-06-13T21:26:39.757 回答
9

您需要将 YourPythonPath\Library\bin 添加到 PATH 环境变量中。就我而言,它是 C:\Python36-64\Library\bin

于 2018-05-24T18:50:40.280 回答
9

包 CVXOPT 需要 numpy+mkl,你可以尝试卸载 numpy 包并从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy重新安装 numpy+mkl ,然后导入 CVXOPT,它会工作。

于 2017-06-05T02:24:29.063 回答
2

dll 加载问题的原因很可能是一个非常不同的原因。最新的 Anaconda 版本(例如 Anaconda 5.0.1)具有支持 MKL 的 Numpy。这不是问题。我通过使用 conda list 查看已安装的软件包来验证这一点。问题是 cvxopt 需要一些 dll,这些 dll 在目录中

C:\Anaconda3\envs\foo\Library\mingw-w64\bin  

如果您安装 Anaconda 并且不在系统路径上注册 Anaconda python(无论如何这是他们建议的设置),然后使用 Anaconda 提示设置新环境(注意当前版本的 cvxopt 您需要 Python 3.5)

conda create -n foo python=3.5
activate foo

conda install cvxopt

并导入 cvxopt

(foo) C:\tmp>python
Python 3.5.4 |Anaconda, Inc.| (default, Nov  8 2017, 14:34:30) [MSC v.1900 
64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cvxopt
>>> 

一切都应该正常工作。如果您检查 Anaconda 相关的路径设置,您会发现

C:\Anaconda3\envs\foo;
C:\Anaconda3\envs\foo\Library\mingw-w64\bin;
C:\Anaconda3\envs\foo\Library\usr\bin;
C:\Anaconda3\envs\foo\Library\bin;
C:\Anaconda3\envs\foo\Scripts;

如果你现在从路径中删除 C:\Anaconda3\envs\foo\Library\mingw-w64\bin 你又回到了问题

C:\tmp>python
Python 3.5.4 |Anaconda, Inc.| (default, Nov  8 2017, 14:34:30) [MSC v.1900 
64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cvxopt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda3\envs\tf14\lib\site-packages\cvxopt\__init__.py", line 32, in <module>
    import cvxopt.base
ImportError: DLL load failed: The specified module could not be found.
>>>

但是还有另一个与 PyCharm 相关的问题:如何在 PyCharm 中正确使用 Anaconda envs?PyCharm 无法处理环境所需的其他路径。至少不是开箱即用,或者我没有找到正确的方法。欢迎任何建议。

于 2017-11-30T09:18:55.613 回答
1

我修好了它。只需将路径 C:\Python36\Library\bin 添加到 PATH 环境变量中,就像 Artashes Khachatryan 所说的那样。当我导入 cvxopt 库时,它运行 base.cp36-win_amd64 文件,该文件需要 bin 文件夹中的 dll。

于 2018-06-05T02:25:25.327 回答
0

cvxopt.base 构建为一个 pyd 文件(本质上是一个 Windows DLL)。它应该位于“C:\Program Files (x86)\Python\lib\site-packages\cvxopt”中。检查此目录是否在您的 PYTHONPATH 中。如果不是,您可以从命令行将目录附加到您的路径,如下所示:

import sys
sys.path.append("C:\Program Files (x86)\Python\lib\site-packages\cvxopt")

希望有帮助!

于 2013-07-16T13:14:48.687 回答
0

我在导入 cvxopt 模块时遇到了同样的 ImportError 问题。由于 cvxopt 支持 python 2.7-3.5 版本,我首先使用 python 3.5 创建了一个 conda 虚拟环境,步骤如下:

  1. 打开 Anaconda 提示
  2. conda create -n python=3.5
  3. 康达激活

在激活的 conda 环境中使用命令安装 cvxopt 包: conda install cvxopt

这将安装 cvxopt 包和所有依赖项。

安装后通过在 Anaconda 提示符下键入 spyder 打开 spyder,这将使用您创建的虚拟环境打开 Spyder。

在此 cvxopt 包将正常工作后,不会出现任何错误。

注意:我一直在尝试在 Pycharm 中打开虚拟环境,但没有成功,最后切换到了 spyder。

于 2018-02-17T04:08:04.477 回答
0

我遇到了同样的问题,解决方法是迁移到 python 3.5(通过创建虚拟环境)。请注意,不幸的是 cvxopt 不适用于 python 3.6。

于 2018-03-26T21:10:56.577 回答
0

我在 PyCharm 2018.1 中结合 Conda 环境工作时遇到了这个问题。当我从 Anaconda 终端运行以下命令时,一切正常:

conda activate cvxopt_test
python -c "import cvxopt"

但是,import cvxopt在 PyCharm 中运行时,会引发您描述的错误。正如丹尼尔在他的回答中提到的,这与 windows PATH 变量有关(os.environ['PATH'])。PyCharm 在运行代码时不添加 cvxopt 文件夹。对我来说,避免错误的最小工作示例是:

import os
# add the folder containing the DLL to the PATH variable
os.environ['PATH'] += r';C:\Anaconda3\envs\foo\Library\mingw-w64\bin'

尽管以相同的方式将 Daniel 提到的所有文件夹添加到 PATH 变量中可能是明智的。

于 2018-03-30T12:17:03.593 回答
0
  1. 打开“系统属性”窗口,然后单击“高级”选项卡。
  2. 单击底部的环境变量按钮。
  3. 在用户变量部分中,选择路径并单击编辑。
  4. 将包含 mkl_rt.dll 的目录添加到路径中。
于 2019-10-28T15:41:40.187 回答