【发布时间】:2016-07-27 15:24:04
【问题描述】:
最终我正在尝试为 Python 2.7 安装 CVXPY。 CVXPY 有一些要求,包括CVXOPT。我尝试了两种方法,从 Gohlke 的网站安装,他在其中托管用于 Python 扩展的 Windows 二进制文件: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 错误。
仍然会对我遇到的编译错误感到好奇。
【问题讨论】:
-
感谢您使用 gohlke 的轮子为我节省了一天的时间。仍然好奇为什么 anaconda 中的 numpy 版本不起作用。
标签: python windows python-2.7 cvxopt cvxpy