Как установить 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, Похоже, это работает. Обновлю здесь, если сломается.

Другие вопросы по тегам