我是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加载失败: 无法找到指定的模块。
有人可以帮我解决这个问题吗?非常感谢!
答案 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虚拟环境:
在激活的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的目录添加到路径。