首页 / 知识
python之Cython安装与使用入门
2023-11-12 13:46:00
一、Cython是什么?
它是一个用来快速生成Python扩展模块(extentionmodule)的工具
它的语法是python语言语法和c语言语法的混血
他比swig更容易编写python的扩展模块
也许你会说swig可以直接通过c的头文件生成扩展模块,但是swig对回调函数的支持不是很好,
另外,如果用swig,很多情况下,你要写额外的代码将输入的参数转换成python对象以及将输出转成python对象,例如如果封装的一个C函数的参数是输入输出的话,又如如果C函数的参数中有回调函数的话
而在Cython,C里的类型,如int,float,long,char*等都会在必要的时候自动转成python对象,或者从python对象转成C类型,在转换失败时会抛出异常,这正是Cython最神奇的地方
另外,Cython对回调函数的支持也很好。
总之,如果你有写python扩展模块的需求,那么Cython真的是一个很好的工具
二、安转cython
cython在linux下安装:
1.源码包安装:
[blueelwang@pythontab~]$wgethttps://pypi.python.org/packages/b7/67/7e2a817f9e9c773ee3995c1e15204f5d01c8da71882016cac10342ef031b/Cython-0.25.2.tar.gz
[blueelwang@pythontab~]$tarxzvfCython-0.25.2.tar.gz
[blueelwang@pythontab~]$cdCython-0.25.2
[blueelwang@pythontab~]$pythonsetup.pyinstall
2.pip包安装
[blueelwang@pythontab~]$sudopipinstallCython--install-option="--no-cython-compile"
3.Ubuntu下安装
[blueelwang@pythontab~]$sudoapt-getinstallcython
安装后输入cython即可验证是否安装成功
三、使用
1、编写以.pyx为扩展名的cython程序,hello.pyx
defsay_hello_to(name):
print("Hello%s!"%name)
2、编写python程序setup.py
其目的是把hello.pyx程序转化成hello.c,并编译成so文件
fromdistutils.coreimportsetup
fromdistutils.extensionimportExtension
fromCython.Distutilsimportbuild_ext
ext_modules=[Extension("hello",["hello.pyx"])]
setup(
name='Helloworldapp',
cmdclass={'build_ext':build_ext},
ext_modules=ext_modules
)
3.执行python程序
[blueelwang@pythontab~]$pythonsetup.pybuild_ext--inplace
执行的结果会生成两个文件:hello.c和hello.so(用PyObject*封装好的文件)
4.用python调用hello.so,调用文件为test.py
importhello
hello.say_hello_to("hi,cython!!")
cython的主要目的是:简化python调用c语言程序的繁琐封装过程,提高python代码执行速度(C语言的执行速度比python快)
以上内容为大家介绍了python之Cython安装与使用入门,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
最新内容
相关内容
linux程序的状态命令?
linux程序的状态命令?,系统,状态,服务,情况,软件,进程,数据,基础,命令,信息,Linux系统中用于查看系统进程状态的命令是什么?1、命令是[ps-aux]。linux源程序清单命令?
linux源程序清单命令?,工作,系统,地址,代码,管理,信息,官方网站,命令,目录,地方,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、llinux命令行看代码?
linux命令行看代码?,代码,基础,系统,命令,数字,工作,情况,进程,程序,终端,在Linux命令终端中查看和编辑曾执行过的命令1、使用历史命令:在终端linux命令代码怎么看?
linux命令代码怎么看?,时间,系统,代码,命令,状态,工具,情况,电脑,实时,基础,linux查看系统命令是什么有的,Linux中有多个命令可以用于查看文件python中常用的工具有哪些?
python中常用的工具有哪些?,工具,代码,培训,平台,中国,公司,管理,智能,最新,功能,Python是入门编程的不错选择,现在很多人在转行学习编程时选择7个提升Python程序性能的好习惯
7个提升Python程序性能的好习惯,代码,名字,检测,数据,培训,模块,函数,变量,性能,对象,掌握一些技巧,可尽量提高Python程序性能,也可以避免不必Python编程语言的优缺点
Python编程语言的优缺点,代码,网站,航空,管理系统,培训,系统,概念,网络,基础,机器人,Python是一种编程语言,它的名字来源于一个喜剧。是由Guid比较好用的Python代码编辑器
比较好用的Python代码编辑器,代码,平台,环境,培训,教育,设计,数据,办公,人员,分析,Python是一款非常简单的编程语言,其功能使用起来都十分方便pycharm无法输入代码?
pycharm无法输入代码?,代码,环境,工具,分析,输入法,键盘,性能,计算机,问题,版本,PyCharm是一款Python语言开发的集成开发环境(IDE),它是许多PythoPython常用时间模块有哪些?
Python常用时间模块有哪些?,时间,信息,模块,培训,代码,灵活,字符串,日期,小时,实例,在编写代码的过程中,我们经常需要与时间打交道,所以说掌握时让Python代码更易维护的工具
让Python代码更易维护的工具,代码,工具,标准,项目,质量,地方,更正,一致,变动,软件,检查你的代码的质量,通过这些外部库使其更易维护。可读性很深入理解python函数传参机制
深入理解python函数传参机制,培训,对象,函数,变量,类型,复本,下面,操作,机制,内存,首先需要申明的一点是,python里是没有像C和C++里那样按值传