Cet article est un mémorandum qui décrit le contenu minimum requis pour essayer une bibliothèque Python appelée Cython.
J'espère que cela aide les gens qui disent: "Cython semble être un moyen d'accélérer Python, mais je ne suis pas sûr de ce que c'est!"
N'ayez pas peur de mal comprendre
Cython = ** Un nouveau langage de programmation incroyablement similaire à Python pour créer des bibliothèques Python **
est.
Il existe de nombreuses autres façons de l'utiliser, mais je pense que ce niveau de reconnaissance est suffisant si vous l'essayez d'abord.
Essayons-le tout de suite.
Le minimum requis est de deux.
hoge.pyx
def tasu(a, b):
return a + b
C'est très similaire à Python, c'est comme Python. En Cython, vous pouvez également définir des fonctions avec cdef
et cpdef
, et vous pouvez spécifier le type de ʻa et
b`, mais allons-y sans aller plus loin car ce n'est qu'un essai.
setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("hoge.pyx"))
Il y a un sort magique qui ** ne ** pas ** le code Cython que j'ai écrit plus tôt.
Lorsque les deux ci-dessus sont prêts, transpilez et compilez avec la commande suivante.
python3 setup.py build_ext -i
Je pense que certains fichiers ont été générés, mais le hoge.c
généré est un transpile de hoge.pyx
en langage C. Il s'agit d'une bibliothèque importée de Python et utilisée par une personne comme hoge.cpython-36m-x86_64-linux-gnu.so
.
Tout ce que vous avez à faire est d'importer hoge.cpython-36m-x86_64-linux-gnu.so
et d'appeler la fonction que vous venez de créer.
>>> import hoge
>>>
>>> print(hoge.tasu(1,2))
Il semble que Cython ne tire pas grand avantage de l'accélération à moins que vous ne sachiez comment l'utiliser et où l'utiliser, mais il est étonnamment facile de l'essayer.
Recommended Posts