Es ist ein Tool zum schnellen Generieren von Python Erweiterungsmodul (extention module) Tool
Seine Syntax ist eine Mischung aus Python-Sprachsyntax und C-Sprache-Syntax
er Es ist einfacher, Python-Erweiterungsmodule zu schreiben als Swig
Vielleicht werden Sie sagen, dass Swig Erweiterungsmodule direkt über C-Header-Dateien generieren kann, aber Swig unterstützt keine Rückruffunktionen sehr gut,
Außerdem müssen Sie bei Verwendung von swig in vielen Fällen zusätzlichen Code schreiben, um die Eingabeparameter in PythonObjekte umzuwandeln und die Ausgabe in Python-Objekte umzuwandeln, beispielsweise wenn Sie kapseln Eine C-Funktion Wenn die Parameter Eingabe und Ausgabe sind und in den Parametern der C-Funktion eine Rückruffunktion vorhanden ist,
, und in Cython, sind die Typen in C, wie z. B. int, float , long, char* usw. werden bei Bedarf automatisch in Python-Objekte konvertiert oder von Python-Objekten in C-Typen konvertiert. Wenn die Konvertierung fehlschlägt, wird eine Ausnahme ausgelöst Das Erstaunlichste an Cython
Darüber hinaus bietet Cython auch eine gute Unterstützung für Rückruffunktionen Kurz gesagt, wenn Sie Python-Erweiterungsmodule schreiben müssen, dann ist Cython wirklich ein gutes Werkzeug2. In Cython konvertierenCython wird unterLinux installiert: 1. Quellpaketinstallation:
[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
[blueelwang@pythontab ~]$ sudo pip install Cython --install-option="--no-cython-compile"
[blueelwang@pythontab ~]$ sudo apt-get install cython
def say_hello_to(name): print("Hello %s!" % name)
3. Führen Sie das Python-Programm aus
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 )
[blueelwang@pythontab ~]$ python setup.py build_ext --inplace
4. Verwenden Sie Python, um hello.so aufzurufen, und die aufrufende Datei ist test.py
Das obige ist der detaillierte Inhalt vonTeilen Sie Ihre Erfahrungen mit der Installation und Nutzung von Cython. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!