Python和C|C++的混編(二):利用Cython進行混編
還能夠使用Cython來實現混編
1 下載Cython。用python setup.py install進行安裝
2 一個實例
① 創建helloworld文件夾
創建helloworld.pyx,內容例如以下:
cdef extern from"stdio.h":
extern int printf(const char *format, ...)
def SayHello():
printf("hello,world\n")
② 編譯,最方便的是利用python的Distutils了,
helloworld文件夾下創建Setup.py,內容例如以下:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize
setup(
name = ‘helloworld‘,
ext_modules=cythonize([
Extension("helloworld", ["helloworld.pyx"]),
]),
)
編譯:
python Setup.py build
安裝:
python Setup.py install
安裝後。會將在build/lib.??
?文件夾下生成的helloworld.pyd復制到Lib/site-packages
註:
有時我們僅僅是希望測試一下。並不希望安裝。這時能夠把build/lib.???文件夾下的helloworld.pyd復制到當前文件夾
或者在importhelloworld前運行腳本:import sys;sys.path.append(pathof helloworld.pyd)
③ 測試:
>>>import helloworld
>>>helloworld.SayHello()
hello,world
Python和C|C++的混編(二):利用Cython進行混編