2013-05-28 5 views
5

Versuch cffi.FFI.verify() auf Fenster aufrufen wird diesen Fehler erzeugen:Wie konfiguriert man Python cffi-Bibliothek, um mingw zu verwenden?

distutils.errors.DistutilsPlatformError: Unable to find vcvarsall.bat 

Ich möchte mingw verwenden, anstatt msvc zu kompilieren. Ich habe versucht, distutils zu machen verwenden mingw durch die Schaffung von c: \ Python27 \ Lib \ distutils \ distutils.cfg mit

[build] 
compiler = mingw32 

aber dies scheint nicht cffi zu beeinflussen, bekomme ich immer noch vcvarsall.bat Fehler fehlt.

Also wie kann ich cffi verwenden gcc/mingw (oder im Allgemeinen andere C-Compiler)?

+0

Was gibt 'gcc --version' in einer Eingabeaufforderung zurück? Ist der Pfad zu 'MinGW/bin' in Ihrem 'PATH'-env korrekt eingestellt? var. ? –

+0

Ja, das sind sie. Ich kann gcc (GCC) 4.7.2 von derselben Cmd-Eingabeaufforderung aufrufen, mit der ich das Python-Skript ausführen möchte. Windows-Pfad enthält MinGW/bin Verzeichnis – vanem

Antwort

1

Versuchen Sie, cffi neu zu installieren, jetzt, dass distutils richtig konfiguriert ist. Zum Beispiel mit easy_install

easy_install cffi 

Oder sogar & es von der Quelle wieder aufzubauen Installation mit MinGW auf diese Weise: mit MinGW

cd cffi-src-dir 
python setup.py config --compiler=mingw32 build --compiler=mingw32 install 
cd .. 

Dies wird sicherstellen, dass cffi für die korrekte Einrichtung verwendet wird ... Ich denke, ...

+0

gut, mit pip oder easy_install zuerst fehlschlägt mit einem distutils Fehler über ein schlechtes "-mno-cygwin" Argument zu beschweren. Nachdem ich das Compiler-Argument von distutils/cygwincompiler.py entfernt habe (wie in diesem Problem http://bugs.python.org/issue12641), wird die Kompilierung gestartet, aber in anderen gcc-Fehlern heruntergefahren. Ich werde für den Moment aufgeben. – vanem

+0

Das Kompilieren aus Quellen hilft nicht, da setup.py distutils verwendet, daher treten genau dieselben Probleme auf wie bei pip oder easy_install. Übrigens, ich habe cffi installiert, indem ich die inoffiziellen Binaries von hier http://www.lfd.uci.edu/~gohlke/pythonlibs/ benutzt habe. Es funktioniert, wenn Sie nur ABI verwenden, aber wenn Sie versuchen, die API zu benutzen (und folglich C zusammenzustellen), scheitert es, wie in meiner ursprünglichen Frage beschrieben – vanem

Verwandte Themen