cython入门(hello cython)

开始主要写python的东西了,写习惯了JAVA和node.js,现在最不能适应的就是这语言实在是太慢了。。。慢的让人受不了。。。不过确实也有很爽的地方,python确实简单方便


由于现在涉及到的东西想要在gevent上做一层扩展,使得socket描述符可以跨进程在gevent的loop上注册。。。

python的socket由于没有sendmsg这些东西,所以这里就只有用到cython来做一下扩展了。。。


从最简单的开始吧,定义pyx文件,aa.pyx,内容如下:

cdef extern from"stdio.h":
	extern int printf(const char *format, ...) 

def addtest(a,b):
	printf("hello fjs\n")
	cdef float c=a+b
	return c

然后调用cython命令来进行编译:

cython aa.pyx 


编译可以得到aa.c文件,接下来调用gcc来进行编译:

 gcc -c aa.c -I /usr/include/python2.7/


 gcc -shared aa.o -lpython2.7 -o aa.so



这样子就可以编译得到aa.so文件了,直接就可以调用python的import来载入这个模块:

我们测试一下:

>>> import aa

>>> print aa.addtest(1, 2)

hello fjs

3.0


嗯。。好像挺简单的。。。基本用法懂了。。接下来的事情就是要解决最开始的需求了。。





你可能感兴趣的:(cython入门(hello cython))