1. 程式人生 > >Python和C|C++的混編(二):利用Cython進行混編

Python和C|C++的混編(二):利用Cython進行混編

cde uil 有時 當前 class def 將在 python 混編

還能夠使用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進行混編