博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python和C|C++的混编(二):利用Cython进行混编
阅读量:6539 次
发布时间:2019-06-24

本文共 874 字,大约阅读时间需要 2 分钟。

还能够使用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

转载于:https://www.cnblogs.com/yutingliuyl/p/7015698.html

你可能感兴趣的文章
Ubuntu 12.04 root用户登录设置
查看>>
windows核心编程-互斥器(Mutexes)
查看>>
纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!...
查看>>
java 为啥变量名前要加个m?
查看>>
探索Android中的Parcel机制(上)
查看>>
c++ 类型定义
查看>>
C#开发微信门户及应用(5)--用户分组信息管理
查看>>
怎样实现前端裁剪上传图片功能
查看>>
程序员提高工作效率的15个技巧【Facebook】
查看>>
ffmpeg+SDL2实现的视频播放器「退出、暂停、播放」
查看>>
2011/7/3 第二次评审
查看>>
Openvswitch手册(2): OpenFlow Controller
查看>>
Cocos2d-JS项目之二:studio基础控件的使用
查看>>
tar解压
查看>>
inheritprototype原型继承封装及综合继承最简实例
查看>>
【磁耦隔离接口转换器】系列产品选型指南
查看>>
Apriori 关联算法学习
查看>>
二叉树、红黑树、伸展树、B树、B+树
查看>>
Junit核心——测试集(TestSuite)
查看>>
MVPArms官方首发一键生成组件化,体验纯傻瓜式组件化开发
查看>>