import cvxopt.base:找不到指定的模块

时间:2013-02-08 17:35:47

标签: module python-3.x

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

  

文件“C:\ Program Files   (x86)\ Python \ lib \ site-packages \ cvxopt__init __。py“,第33行,in    import cvxopt.base ImportError:DLL加载失败:   无法找到指定的模块。

有人可以帮我解决这个问题吗?非常感谢!

10 个答案:

答案 0 :(得分:11)

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

import numpy
import cvxopt

答案 1 :(得分:7)

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

答案 2 :(得分:6)

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

答案 3 :(得分:1)

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

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

如果您安装Anaconda并在系统路径上执行 NOT 注册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无法处理环境所需的其他路径。在leat没有开箱即用,或者我没有找到正确的方法。欢迎任何建议。

答案 4 :(得分:1)

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

答案 5 :(得分: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")

希望有所帮助!

答案 6 :(得分:0)

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

  1. 打开Anaconda Prompt
  2. conda create -n python = 3.5
  3. conda activate
  4. 在激活的conda环境中使用命令安装cvxopt包: conda install cvxopt

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

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

    此cvxopt包之后可以正常运行而不会出现任何错误。

    注意:我一直在尝试在Pycharm中打开虚拟环境,但这不起作用,最后切换到spyder。

答案 7 :(得分:0)

我遇到了同样的问题,并且解决了移植到python 3.5的问题(通过创建虚拟环境)。请注意,使用python 3.6时,cvxopt不能正常工作。

答案 8 :(得分:0)

我在PyCharm 2018.1中与Conda环境结合使用时遇到了这个问题。当我从Anaconda终端运行以下内容时,一切正常:

conda activate cvxopt_test
python -c "import cvxopt"

但是,在PyCharm中运行import cvxopt时,会引发您描述的错误。正如Daniel在他的anwser中提到的,这与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变量中可能是明智之举。

答案 9 :(得分:0)

打开“系统属性”窗口,然后单击“高级”选项卡。单击底部的环境变量按钮。在“用户变量”部分中,选择“路径”,然后单击“编辑”。将包含mkl_rt.dll的目录添加到路径。