Maison  >  Article  >  développement back-end  >  Partager l'expérience d'installation et d'utilisation de Cython

Partager l'expérience d'installation et d'utilisation de Cython

Y2J
Y2Joriginal
2017-04-17 17:05:474797parcourir

1. Qu'est-ce que 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

2. Convertir en cython

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 install
2. 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 cython
Après l'installation, entrez cython pour vérifier si l'installation est réussie

3. Utilisez

1. É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 --inplace
Le 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.py

L'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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn