2009-06-03 5 views
4

Ich mache meine ersten Schritte mit Cython, und ich habe es auf meiner Maschine nach der instructions im Wiki installiert.Cython Pycximport Fehler unter Windows

Durch das Cython-Tutorial arbeitete ich an pyximport, die Cython-Kompilierung wirklich einfach machen soll. Als ich versuchte, es zu benutzen, obwohl, bekam ich die folgende Fehlermeldung (neu formatiert):

ImportError: Building module failed: 
DistutilsPlatformError(' 
    Python was built with Visual Studio 2003; 
    extensions must be built with a compiler than can generate compatible binaries. 
    Visual Studio 2003 was not found on this system. If you have Cygwin installed, 
    you can try compiling with MingW32, by passing "-c mingw32" to setup.py.',) 

Also meine Frage ist: jemand eine Möglichkeit kennen zu pyximport Verwendung mingw zu machen?

Beachten Sie, dass mingw scheint richtig installiert zu werden, der lange Weg Cython Module (mit setup.py) tat Arbeit für mich und dass ich selbst erstellt eine Datei distutils.cfg wie das Wiki mir gesagt, zu machen.

+0

Sorry, ich kann dir nicht helfen. Ich benutze Python 2.6 mit Cython und ich knirschte gerade mit den Zähnen und lud das kostenlose VS 2008 Kit von MS herunter (nur ein Coupla Terrorist) und es hat einfach funktioniert. Sie müssen nicht 5 Monate auf eine Antwort warten, wenn Sie (a) grundlegende Informationen wie die Version von Python, welche Version & SP von Windows, welche Version von mingw und den minimalen bare Code, den Sie zum Demonstrieren der Problem und (b) wie ich würde, fragen Sie auf der Cython-Support-Liste. –

Antwort

11

Ich war vor kurzem herum und entdeckte das Argument setup_args von pyximport.install. Dies funktioniert für mich:

mingw_setup_args={'options': {'build_ext': {'compiler': 'mingw32'}}} 
import pyximport; pyximport.install(setup_args=mingw_setup_args) 
9

maybe this way (from mail list):

c: \ Python2X \ Lib \ distutils \ distutils.cfg:

[build] 
compiler = mingw32 

[build_ext] 
compiler = mingw32 
+0

Danke! Ich hatte nur '[build]' in meiner cfg-Datei und konnte nicht herausfinden, was fehlte. – erickrf

+0

@erickrf froh, ich könnte helfen :) – sunqiang

1

Sie können auch einen erstellen "pydistutils.cfg" Datei unter Ihrem Haus, so dass Sie einen dieser Pfade erhalten: "C: \ Dokumente und Einstellungen \ YourUsername \ pydistutils.cfg" oder "C: \ Users \ YourUse rname \ pydistutils.cfg ".

Dann fügen:

[build_ext]

Compiler = mingw32

auf diese Datei. Stellen Sie auch sicher, dass Sie "MinGW" 's gcc auf Ihrem Weg haben. Ab diesem Punkt, wenn Sie "import pycximport; pyximport.install()" verwenden, sollte Cython einen Ordner mit dem Namen ".pyxbld" unter Ihrem Home-Ordner (siehe oben) generieren. Unter Windows enthält dieser Ordner alle von Cython generierten Dateien ".c, .o, .pyd, .def".

Happy Cythoning!