Python(拡張子モジュール)を高速に生成するために使用される拡張モジュールです。このツール
の構文は、Python 言語の構文とC 言語文法を組み合わせたものです
swig よりも Python 拡張モジュールを記述する方が簡単です
おそらく、swig は C ヘッダー ファイルを通じて直接拡張モジュールを生成できると言うかもしれませんが、 swig のコールバック関数のサポートはあまり良くありません。
さらに、swig を使用する場合、多くの場合、入力パラメーターを Pythonオブジェクト に変換し、出力を Python オブジェクトに変換する追加のコードを記述する必要があります。たとえば、カプセル化された C 関数のパラメータが入出力である場合、または C 関数のパラメータにコールバック関数がある場合、Cython では、C の型 (int、float、long、char* など)など、必要に応じてオブジェクトをPythonオブジェクトに変換したり、PythonオブジェクトからC型に変換したりするときに、変換に失敗すると例外がスローされます。さらに、Cython はコールバック関数も適切にサポートしています
つまり、Python 拡張モジュールを作成する必要がある場合、Cython は本当に優れたツールです 次に、linux
インストールの下に cythoncython をインストールします。:
[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. pip パッケージのインストール[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)
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 )
実行結果は次のようになります: hello.c と hello.so (Py
Object[blueelwang@pythontab ~]$ python setup.py build_ext --inplace
以上がCython のインストールと使用体験を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。