2016-04-05 45 views
4

我最近更新到python 3.5.0并且想安装cvxopt,目前为止没有运气。所以我尝试了python 2.7并按照说明here我安装了mingw(4.9.3),并从源代码构建了blas和lapack,没有问题。 当我运行如何在Windows 7上为Python 3.5安装cvxopt

python setup.py build --compiler=mingw32 

我得到以下输出:

running build 
running build_py 
running build_ext 
building 'base' extension 
C:\minGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Python27\ 
c/C/base.c -o build\temp.win32-2.7\Release\src\c\base.o 
C:\minGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Python27\ 
c/C/dense.c -o build\temp.win32-2.7\Release\src\c\dense.o 
C:\minGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Python27\ 
c/C/sparse.c -o build\temp.win32-2.7\Release\src\c\sparse.o 
src/C/sparse.c: In function 'sparse_concat': 
src/C/sparse.c:368:30: warning: variable 'blk_ncols' set but not used [- 
but-set-variable] 
     int_t blk_nrows = 0, blk_ncols = 0; 
          ^
writing build\temp.win32-2.7\Release\src\c\base.def 
C:\minGW\bin\dllwrap.exe -mdll -static --entry [email protected] --output-lib 
mp.win32-2.7\Release\src\c\libbase.a --def build\temp.win32-2.7\Release\ 
se.def -s build\temp.win32-2.7\Release\src\c\base.o build\temp.win32-2.7 
\src\c\dense.o build\temp.win32-2.7\Release\src\c\sparse.o -Lsrc -LC:\Py 
ibs -LC:\Python27\PCbuild -LC:\Python27\PC\VS9.0 -lm -llapack -lblas -lg 
-lpython27 -lmsvcr90 -o build\lib.win32-2.7\cvxopt\base.pyd 
c:/mingw/bin/../lib/gcc/mingw32/4.9.3\libgfortran.a(write.o):(.text$writ 
0xbb): undefined reference to `signbitq' 
c:/mingw/bin/../lib/gcc/mingw32/4.9.3\libgfortran.a(write.o):(.text$writ 
0xe7): undefined reference to `finiteq' 
c:/mingw/bin/../lib/gcc/mingw32/4.9.3\libgfortran.a(write.o):(.text$writ 
0x314): undefined reference to `finiteq' 
c:/mingw/bin/../lib/gcc/mingw32/4.9.3\libgfortran.a(write.o):(.text$writ 
0x7f2): undefined reference to `isnanq' 
collect2.exe: error: ld returned 1 exit status 
dllwrap: gcc exited with status 1 
error: command 'C:\\minGW\\bin\\dllwrap.exe' failed with exit status 1 

3.5我使用Anaconda。 On this site他们展示了如何通过conda命令安装cvxopt,当我尝试这个时,我得到了未知的MS编译器版本1900错误。 使用此"patch"安装过去了这一点,但对于conda想要安装的所有软件包(输出不包括,因为太长)的错误结束

这是版本3.5的问题吗?还是明明?还是64位的水蟒?我正在尝试安装VC15以查看是否会改变某些事情,但实际上并不知道在哪里或需要注意什么。

编辑: 我还是不知道究竟是什么原因导致的问题,但是从this site二进制文件,如建议here工作完美的蟒蛇64位和Python 3.5(虽然你必须卸载numpy的和SciPy的和使用的版本来自网站)

至于minGW而言,它可能不适用于python 3.5,但如评论here中所述,以及为什么2.7给出了这些fortran错误,我根本无法说出。

回答

0

这是一个迟到的回复,我看到你已经找到了解决方案,通过安装自定义车轮来解决你的问题。不过,我想指出您的具体问题的另一种选择。既然你看起来正在用Anaconda运行python 3.5,那么有一个rdonnelly的渠道可能会帮助你。

conda install -c rdonnelly cvxopt=1.1.9 

该解决方案是人们不准备安装自定义numpy的和SciPy的像我这样的特别方便,因为他们打破了我的Python安装两次。这是我获得cvxopt在我的win64 py35系统上运行的唯一方法。请注意,这个软件包是为python 3.5量身打造的,目前Conda默认会安装3.6。为了达到这个目的,我选择了安装Conda的旧版本。