(Ajouté le 05.04.2020) Pour Windows, le chemin de la compilation est assez déroutant. Il y a plusieurs indices sur la page officielle d'Ichiou Cython, mais ... c'est fastidieux à lire:
- Article pour obtenir un environnement de compilation Python: Pour les versions récentes, il semble que vous ayez besoin de quelque chose appelé Windows SDK C / C ++ Compiler .. Fondamentalement, vous avez besoin d'un compilateur pour la version du SDK Windows sur laquelle Python est construit (voir Cette page de wiki Python pour plus d'informations)
- Astuces pour installer avec Anaconda etc.: Il n'y a pas beaucoup de nouvelles informations ici, mais juste au cas où
De plus, afin d'utiliser le compilateur de Cython, il est nécessaire d'exécuter Python (Cython) sur un émulateur de terminal avec l'environnement de construction correctement configuré. Le plus simple est
1.Faire fonctionner l'environnement python avec le shell Windows standard 2. Lancez l'invite de commande Visual Studio et exécutez setup.py de python là
Mais si vous souhaitez utiliser l'environnement virtuel d'Anaconda, cela peut être très déroutant. Pendant les essais et erreurs, où et quel type de variables d'environnement doivent être configurées pour qu'elles puissent être utilisées à l'invite anaconda ...
Utilisez pip et vous avez terminé tout de suite. Je pense que je n'avais pas besoin de privilèges d'administrateur ...
$ pip install cython
Copiez le code depuis Cython: tutoriel de base et vérifiez s'il peut être compilé:
python setup.py build_ext --inplace
. Pour Windows, vous devez le faire sur l'invite de commande du développeur pour utiliser les commandes requises et inclure des fichiers.Lors de l'exécution de setup.py '', il peut être installé dans la bibliothèque Python sans l'option
--inplace`` (non confirmée).
Si la compilation réussit, setup.py se terminera par un message "Terminé". Dans ce cas, vous pouvez importer le fichier compilé en définissant ʻimport <nom de fichier pyx>
`sur la console python.
En revanche, si la compilation échoue, un message «Échec» apparaîtra. Vous pouvez voir plus de détails sur l'erreur en revenant un peu avant la sortie de l'émulateur de terminal. La plupart du temps, je pense que c'est une erreur dans le fichier .pyx ou que le fichier include / link est manquant.
Extrait de Stack Overflow Answer.
Lorsque vous utilisez numpy de Cython, les fichiers d'en-tête C de la bibliothèque numpy sont requis. Il est facile à comprendre lors de la compilation directe à l'aide de gcc ou autre, mais l'option `` -I '' ne peut pas être utilisée lors de la compilation via setup.py.
Dans ce cas, utilisez l'objet ʻExtension`` de
`distutils``:
setup.py
from distutils.core import setup, Extension
from Cython.Build import cythonize
import numpy
setup(
ext_modules=[
Extension("my_module", ["my_module.c"],
include_dirs=[numpy.get_include()]),
],
)
Le deuxième argument dans ce cas spécifie une liste de fichiers source (chemin absolu ou relatif). Répertoriez les chemins d'inclusion que vous souhaitez ajouter avec l'argument de mot clé `ʻinclude_dirs``.
Ou si vous regardez la documentation Cython (http://cython.readthedocs.io/en/latest/src/reference/compilation.html), le cythonize () '' lui-même a une option appelée
include_dirs`` Apparemment:
setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = "My hello app",
ext_modules = cythonize("src/*.pyx", include_path = [...]),
)
numpy
fournit une fonction appelée `` get_include () '', vous pouvez donc l'utiliser, et même dans la bibliothèque native, vous pouvez utiliser pkg-config ou n'importe quelle sortie.
Recommended Posts