Как установить CVXOPT для Python 2.7 в Windows 10?
В конечном итоге я пытаюсь установить CVXPY для Python 2.7. CVXPY имеет несколько требований, включая CVXOPT. Я испробовал два подхода: установить его с веб-сайта Гольке, где он размещает бинарные файлы Windows для расширений Python: http://www.lfd.uci.edu/~gohlke/pythonlibs/ и сам собрать из исходного кода.
При использовании двоичных файлов, предоставленных Gohlke, я получаю следующую ошибку при попытке импорта в python:
import cvxpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
...
File "C:\Python27\Lib\site-packages\cvxpy\interface\cvxopt_interface\dense_matrix_interface.py", line 26, in <module>
import cvxopt
File "C:\Python27\Lib\site-packages\cvxopt\__init__.py", line 32, in <module>
import cvxopt.base
ImportError: DLL load failed: The specified module could not be found.
Я проверил, что base.pyd
файл присутствует в cvxopt/
При сборке из исходного кода я следовал инструкциям с сайта и, в конце концов, собирал CVXOPT с python setup.py build --compiler=mingw32
Я получил следующую ошибку:
C:\MinGW\bin\gcc.exe -mdll -O -Wall -Isrc/C/SuiteSparse/AMD/Include -Isrc/C/SuiteSparse/SuiteSparse_config -IC:\Python27\include -IC:\Python27\PC -c src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.c -o build\temp.win32-2.7\Release\src\c\suitesparse\suitesparse_config\suitesparse_config.o
src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.c: In function 'SuiteSparse_tic':
src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.c:358:21: error: storage size of 't' isn't known
struct timespec t ;
^
src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.c:359:5: warning: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration]
clock_gettime (CLOCK_MONOTONIC, &t) ;
^
src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.c:359:20: error: 'CLOCK_MONOTONIC' undeclared (first use in this function)
clock_gettime (CLOCK_MONOTONIC, &t) ;
^
src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.c:359:20: note: each undeclared identifier is reported only once for each function it appears in
src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.c:358:21: warning: unused variable 't' [-Wunused-variable]
struct timespec t ;
^
error: command 'C:\\MinGW\\bin\\gcc.exe' failed with exit status 1
Я сделал некоторые исследования в этом и error: storage size of 't' isn't known
но я не могу определить, это вина CVXOPT или Windows?
Я использую Python2.7 на Windows 10. Любые предложения или ясности по некоторым из этих вопросов было бы здорово. Как я уже упоминал, просто пытаюсь заставить работать CVXPY, но, похоже, завис на CVXOPT. Спасибо!
ОБНОВИТЬ
Мне удалось получить рабочую установку CVXOPT, удалив текущую версию numpy, которую я имел, и загрузив / установив whl numpy-mkl с http://www.lfd.uci.edu/~gohlke/pythonlibs/. Затем я установил CVXOPT и CVXPY с сайта. Наконец удалось получить успешный импорт cvxpy без ошибки DLL cvxopt.base.
Тем не менее было бы любопытно, что ошибка компиляции у меня была.
1 ответ
Спасибо тебе за это. Мои 2 цента на это:
С Anaconda на Windows 7 я просто использовал омнио репо conda install -c omnia cvxopt
, Похоже, это работает. Обновлю здесь, если сломается.