Python和C|C++的混编:利用Cython进行混编

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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进行混编的主要内容,如果未能解决你的问题,请参考以下文章

利用Cython对python代码进行加密

cython和python的区别

『Python CoolBook』Cython

基于Cython和内置distutils库,实现python源码加密(非混淆模式)

cython与python的不同都有哪些

Cython 是用于构建 C 代码还是用于构建 Python 扩展?