2009-06-03 3 views
4

Je fais mes premiers pas avec Cython, et je l'ai installé sur ma machine selon le instructions dans le wiki.Erreur Cython pyximport sur Windows

En travaillant avec le tutoriel Cython, je suis arrivé à pyximport, ce qui est supposé rendre la compilation de Cython très simple. Quand j'ai essayé de l'utiliser, cependant, j'ai reçu le message d'erreur suivant (reformaté):

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.',) 

Ma question est la suivante: que quelqu'un sait d'une façon de faire MinGW pyximport utilisation?

Notez que MinGW semble être installé correctement, le long chemin à faire des modules cython (en utilisant setup.py) a fait travail pour moi, et que j'ai même créé un fichier distutils.cfg comme le wiki m'a dit.

+0

Désolé, je ne peux pas vous aider. Je cours avec Python 2.6 avec Cython et j'ai juste grincé des dents et téléchargé le kit VS 2008 gratuit de MS (seulement une combinaison de terrorbites) et cela a juste fonctionné. Vous n'aurez peut-être pas à attendre 5 mois pour obtenir une réponse si vous (a) fournissez des détails de base comme la version de Python, la version et le SP de Windows, la version de MINGW que vous avez et le code minimum nécessaire pour démontrer problème et (b) comme je le ferais, demander sur la liste de soutien Cython. –

Répondre

11

J'étais récemment en train de faire le tour et j'ai découvert l'argument setup_args de pyximport.install. Cela fonctionne pour moi:

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

Merci! Je n'avais que '[build]' dans mon fichier cfg et je ne pouvais pas comprendre ce qui manquait. – erickrf

+0

@erickrf heureux je pourrais aider :) – sunqiang

1

Vous pouvez également créer un "pydistutils.cfg" fichier sous votre maison afin que vous obtenez l'un de ces chemins: "C: \ Documents and Settings \ YourUsername \ pydistutils.cfg" ou "C: \ Users \ YourUse rname \ pydistutils.cfg ".

Puis ajouter:

[build_ext]

compilateur = mingw32

à ce fichier. Assurez-vous également que vous avez "MinGW" sur votre chemin. À partir de là, lorsque vous utiliserez "import pyximport; pyximport.install()", cython devrait générer un dossier nommé ".pyxbld" sous votre dossier personnel (voir ci-dessus). Sous Windows, ce dossier contiendra tous les fichiers ".c, .o, .pyd, .def" générés par Cython.

Cythoning heureux!