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

Y2J
Libérer: 2017-04-17 17:05:47
original
4796 Les gens l'ont consulté

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
Copier après la connexion
2. Installation du package pip

[blueelwang@pythontab ~]$ sudo pip install Cython --install-option="--no-cython-compile"
Copier après la connexion
3. Installer sous Ubuntu

[blueelwang@pythontab ~]$ sudo apt-get install cython
Copier après la connexion
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)
Copier après la connexion
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
)
Copier après la connexion
3 Exécutez le programme python

[blueelwang@pythontab ~]$ python setup.py build_ext --inplace
Copier après la connexion
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!!")
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal