2013-02-08 4 views
4

Я новичок в Python, только что установил модуль cvxopt для моей системы Python3.3 (64 бит). Установка прошла успешно, но когда я напечатал "import cvxopt" в командной строке Python, он возвратил ошибку:import cvxopt.base: указанный модуль не найден

File "C:\Program Files (x86)\Python\lib\site-packages\cvxopt__init__.py", line 33, in import cvxopt.base ImportError: DLL load failed: The specified module could not be found.

Может кто-нибудь помочь мне в этой проблеме? Большое спасибо!

ответ

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") 

Надежда, что помогает!

+0

Я пробовал это сначала, но это не помогло. См. Мой более длинный ответ ниже. – Daniel

11

Перед импортом cvxopt необходимо импортировать numpy.

import numpy 
import cvxopt 
+3

Не работает для меня. – ziyuang

+0

Я не вижу, как добавление импорта может что-то изменить. Пожалуйста, объясните это дальше. (Кроме того, это решение не работает для меня.) – Samufi

+0

Это не проблема, см. Мой комментарий ниже. – Daniel

3

Пакет CVXOPT требует NumPy + МКЛ, вы можете попробовать удалить пакет Numpy и переустановить NumPy + МКЛ из http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy, затем импортировать CVXOPT, он будет работать.

+0

Текущая версия Anaconda (например, Anaconda 5.x) поддерживает MKL для Numpy. Это не может быть проблемой. См. Мой ответ ниже. – Daniel

0

Причина возникновения проблемы с загрузкой dll, скорее всего, совсем другая. Самая современная версия Anaconda (например, Anaconda 5.0.1) имеет функцию Numpy с поддержкой MKL. Это НЕ вопрос. Я проверил это, посмотрев установленные пакеты, используя список conda. Проблема заключается в том, что cvxopt требует некоторых DLL, которые находятся в каталоге

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

При установке Anaconda и сделать НЕ регистра Анаконды питона на системном пути (который является их рекомендованная установка в любом случае), а затем использовать prommpt Anaconda создать новую среду (примечание для текущего verison из 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: как на самом деле использовать Anaconda envs правильно с PyCharm? PyCharm не может обрабатывать дополнительные пути, как того требует среда. Не сдавайся, или я не нашел способ правильно это сделать. Любые предложения приветствуются.

0

У меня была такая же проблема с ImportError при импорте модуля cvxopt. Поскольку cvxopt поддерживает питона версии 2.7-3.5, я создал Конда виртуальную среду первой с питоном 3.5, используя указанные ниже действия:

  1. открытой Anaconda Prompt
  2. Конда создать -n питона = 3.5
  3. Конда активировать

В активированном среде Конда установить пакет cvxopt с помощью команды: Конда установить cvxopt

Это установит пакет cvxopt и все зависимости.

После установки открытого шпиона, набрав spyder в приглашении Anaconda, и это откроет Spyder с созданной вами виртуальной средой.

После этого пакет cvxopt будет работать без каких-либо ошибок.

Примечание. Я пытаюсь открыть виртуальную среду в Pycharm, но это не сработало и, в конце концов, переключилось на spyder.