2016-04-05 12 views
4

Ich habe vor kurzem auf Python 3.5.0 aktualisiert und möchte cvxopt installieren, bisher ohne Glück. Also habe ich Python 2.7 ausprobiert und folge den Anweisungen here Ich installierte Mingw (4.9.3) und baute blas und lapack von der Quelle ohne Problem. Als ichWie installiert man cvxopt für Python 3.5 unter Windows 7

python setup.py build --compiler=mingw32 

laufen bekomme ich folgende Ausgabe:

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 

Mit 3,5 I Anaconda verwenden. On this site sie zeigen, wie cvxopt über den Befehl conda zu installieren, und wenn ich dies versuche, bekomme ich die Unbekannte MS Compiler-Version 1900 Fehler. Mit dieser "patch" geht die Installation über diesen Punkt hinaus, endet aber in Fehlern für alle Pakete, die conda installieren möchte (Ausgabe nicht enthalten, weil zu lang)

Ist das ein Problem mit Version 3.5? Oder mingw? Oder die 64-Bit-Anakonda? Ich versuche, VC15 zu installieren, um zu sehen, ob das Dinge ändert, aber wirklich keine Ahnung habe, wo oder worauf man achten sollte.

EDIT: Ich weiß noch nicht, was genau das Problem verursacht, aber die Binärdateien aus this site, als here Arbeit perfekt für Anaconda 64 Bit und Python 3.5 vorgeschlagen (obwohl Sie numpy und scipy deinstallieren und die Version verwenden von der Seite)

Wie für minGW betroffen ist, könnte es nicht mit Python 3.5 noch arbeiten, wie in einem Kommentar here vorgeschlagen und warum 2.7 gab diese Fortran Fehler kann ich gar nicht sagen.

Antwort

0

es ist eine späte Antwort und ich sehe, Sie haben bereits eine Lösung für Ihr Problem gefunden, indem Sie die benutzerdefinierten Räder installieren. Ich möchte jedoch auf eine andere Option für Ihr spezifisches Problem hinweisen. Da Sie scheinbar Python 3.5 mit Anaconda ausführen, gibt es einen Kanal von rdonnelly, der Ihnen helfen könnte.

conda install -c rdonnelly cvxopt=1.1.9 

Diese Lösung ist besonders praktisch für die Menschen nicht bereit, eine benutzerdefinierte numpy zu installieren und SciPy wie mich selbst, da sie meinen Python zweimal installieren brachen. Dies war der einzige Weg, wie ich cvxopt auf meinem win64 py35 System laufen lassen konnte. Beachten Sie, dass dieses Paket auf Python 3.5 zugeschnitten ist und der aktuelle Conda standardmäßig 3.6 installiert. Ich entschied mich, eine ältere Version von Conda nur für diesen Zweck zu installieren.

Verwandte Themen