Maison > Article > développement back-end > Partager l'expérience d'installation et d'utilisation de Cython
C'est un outil utilisé pour générer rapidement Outil de module d'extension Python (extension module)
sa syntaxe est un mélange de la syntaxe du langage python et de la syntaxe du langage c
il Il est plus facile d'écrire des modules d'extension python que swig
Peut-être direz-vous que swig peut générer des modules d'extension directement via les fichiers d'en-tête c, mais swig ne prend pas en charge les fonctions de rappel très bien,
De plus, si vous utilisez swig, dans de nombreux cas, vous devez écrire du code supplémentaire pour convertir les paramètres d'entrée en pythonobjets et convertir la sortie en objets python, par exemple, si vous encapsulez une fonction C Si les paramètres sont en entrée et en sortie, et s'il y a une fonction de rappel dans les paramètres de la fonction C,
, et en Cython, les types en C, comme int, float , long, char*, etc. seront tous automatiquement convertis en objets python si nécessaire, ou convertis des objets python en types C. Lorsque la conversion échoue, une exception sera levée . ce qui est le plus étonnant à propos de Cython
De plus, Cython prend également en charge les fonctions de rappel
En bref, si vous avez besoin d'écrire des modules d'extension Python, alors Cython est vraiment un bon outil
cython est installé sous linux :
1. Installation du package source :[blueelwang@pythontab ~]$ wget https://pypi.python.org/packages/b7/67/7e2a817f9e9c773ee3995c1e15204f5d01c8da71882016cac10342ef031b/Cython-0.25.2.tar.gz [blueelwang@pythontab ~]$ tar xzvf Cython-0.25.2.tar.gz [blueelwang@pythontab ~]$ cd Cython-0.25.2 [blueelwang@pythontab ~]$ python setup.py install2. Installation du package pip
[blueelwang@pythontab ~]$ sudo pip install Cython --install-option="--no-cython-compile"3. Installer sous Ubuntu
[blueelwang@pythontab ~]$ sudo apt-get install cythonAprès l'installation, entrez cython pour vérifier si l'installation est réussie3. Utilisez1. Écrivez le programme Cython avec l'extension .pyx, hello.pyx
def say_hello_to(name): print("Hello %s!" % name)2 Écrivez le programme python setup.py. le programme hello.pyx dans hello.c, Et compilez-le dans un fichier
from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext ext_modules = [Extension("hello", ["hello.pyx"])] setup( name = 'Hello world app', cmdclass = {'build_ext': build_ext}, ext_modules = ext_modules )3 Exécutez le programme python
[blueelwang@pythontab ~]$ python setup.py build_ext --inplaceLe résultat de l'exécution générera deux fichiers : hello.c et hello.so (en utilisant Py
Object* fichier encapsulé)
4 Utilisez python pour appeler hello.so, et le fichier appelant est test.pyL'objectif principal de cython est de : Simplifier l'appel de python c Le processus d'encapsulation fastidieux des programmes de langage améliore la vitesse d'exécution du code python (la vitesse d'exécution du langage C est plus rapide que celle de python)import hello hello.say_hello_to("hi,cython!!")
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!