目前cpython调用C/C++的主流手段是cython么
1个回答
展开全部
还可以使用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 setupfrom distutils.extension import Extensionfrom 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
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 setupfrom distutils.extension import Extensionfrom 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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询