最终,我尝试为Python 2.7安装CVXPY。 CVXPY有一些要求,包括CVXOPT。我尝试了两种方法,从Gohlke的网站进行安装,他在该网站上托管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/文件

从源代码构建时,我遵循了网站上的说明,最终使用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上。谢谢!

更新

通过卸载当前拥有的numpy版本并从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy下载/安装numpy-mkl whl,我能够获得CVXOPT的有效安装。然后,我也从该站点安装了CVXOPT和CVXPY。最终能够成功导入cvxpy,而不会出现cvxopt.base DLL错误。

仍然会对我遇到的编译错误感到好奇。

最佳答案

这次真是万分感谢。我的2美分:

在Windows 7上使用Anaconda时,我只使用了omnia repo conda install -c omnia cvxopt。看起来像在工作。如果有问题将在这里更新。

关于python - 如何在Windows 10上为Python 2.7安装CVXOPT?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38617239/

10-11 06:20