2016-07-27 163 views
1

最终我试图为Python 2.7安装CVXPY。 CVXPY有一些要求,包括CVXOPT。我已经尝试了两种方法,从Gohlke的网站安装,在那里他主持了Python扩展的Windows二进制文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/并从源代码自己构建。如何在Windows 10上安装Python 2.7的CVXOPT?

当使用从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/

当从源代码构建我遵循网站的指示,并最终建立与python setup.py build --compiler=mingw32 CVXOPT我得到以下错误:

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?

我在Windows 10上使用Python2.7。任何关于这些问题的建议或清晰度都会很好。就像我刚才提到的,只是试图让CVXPY工作,但似乎挂在了CVXOPT上。谢谢!

UPDATE

我可以通过卸载当前版本numpy的我只好和下载/从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy安装numpy的-MKL WHL得到CVXOPT的工作安装。然后,我从该站点安装了CVXOPT和CVXPY。最后能够在没有cvxopt.base DLL错误的情况下成功导入cvxpy。

仍然会好奇我正在编译的错误。

+0

感谢您使用gohlke的轮子来节省我的一天。仍然好奇为什么在anaconda的numpy版本不起作用。 – dofine

回答

1

谢谢你。我在这2美分:

与Windows 7上的Anaconda我刚刚使用omnia回购conda install -c omnia cvxopt。它看起来像在工作。如果中断,将在此更新。