编译Cython文件
使用一个简单的pyx文件:
def Hello:
print("Hello, World!")
使用Distutils 编译
编写setup.py:
from distutils.core import setup from Cython.Build import cythonize setup( name = 'hello', ext_modules = cythonize('hello.pyx'), )
cythonize 后可跟随一个待编译的pyx文件或者一个list的待编译pyx文件,比如:
cythonize(['hello.pyx', 'world.pyx', '*.pyx'])
然后在command line中执行setup.py:
$ python setup.py build_ext --inplace
其中,
--inplace
选项使生成的hello.so文件与hello.pyx文件处于同一位置。否则,hello.so将位于一个特定的build directory.之后,无论实在Ipython Shell、Ipython Notebook还是其他编辑器中都可以使用Hello模块了(当然需要注意文件路径问题)。比如在Ipython Shell中:
>>> from Hello import Hello >>> Hello() Hello, World!
在Ipython Notebook中使用(强推)
首先加载Cython支持
%load_ext cython
在代码块开头添加
%%cython
marker,然后直接开始写pyx文件。运行代码块即完成编译。%%cython def hello(): print("Hello, World!")
之后就可以直接使用hello函数了。