web-dev-qa-db-fra.com

"erreur: impossible de trouver vcvarsall.bat" lors de la compilation du code Cython

Comme suggéré ici , j'ai installé avec succès Microsoft Visual C++ Compiler for Python 2.7 pour compiler du code Cython, mais:

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize("module1.pyx"))

produit toujours:

erreur: impossible de trouver vcvarsall.bat

Comment compiler du code Cython avec Python 2.7 (par exemple sous Windows 7 x64)?

Remarque: j'ai déjà lu attentivement la question erreur: impossible de trouver vcvarsall.bat mais les principales réponses (y compris la modification de msvc9compiler.py) ne l'a pas résolu.

8
Basj

J'ai passé des heures là-dessus, et les informations n'étaient pas faciles à trouver dans erreur: impossible de trouver vcvarsall.bat , c'est pourquoi je le poste ici avec la fonctionnalité "répondre à votre propre question":

  • Étape 1: installer compilateur Microsoft Visual C++ pour Python 2.7

  • Remarque: vous n'avez pas besoin de modifier msvc9compiler.py comme souvent suggéré dans de nombreux messages du forum

  • Étape 2: ajoutez simplement import setuptools qui aidera Python et "Microsoft Visual C++ Compiler for Python 2.7") à travailler ensemble.

    import setuptools  # important
    from distutils.core import setup
    from Cython.Build import cythonize
    setup(ext_modules=cythonize("module1.pyx", build_dir="build"),
                                               script_args=['build'], 
                                               options={'build':{'build_lib':'.'}})
    

    Noter la script_args le paramètre permet d'exécuter ce setup.py avec seulement python setup.py (c'est-à-dire CTRL + B dans votre éditeur préféré comme Sublime Text) au lieu d'avoir à passer des arguments en ligne de commande comme ceci: python setup.py build.

Ça marche!

15
Basj