开始主要写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
嗯。。好像挺简单的。。。基本用法懂了。。接下来的事情就是要解决最开始的需求了。。