gevent库是python中的一个用于实现并发的库,python本身并发性能并不好,在gevent库的协助下,python并发性也能发挥的很好。于是安装gevent库成为python并发的一个必须需求。但是安装gevent库总是很多蛋疼,下面我说说那些蛋疼的事情:
gevent库是依赖于python的另外两个库的,libevent和greenlet,得先分别安装这两个库,安装这两个库的时候最好都使用最新的版本,否则太旧版本可能出现不兼容的问题,然后于是本机上之前已经安装过libevent库,在安装gevent的时候就需要指定自己安装的libevent库了,通过如下命令:
创新互联于2013年开始,是专业互联网技术服务公司,拥有项目成都做网站、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元管城做网站,已为上家服务,为管城各地企业和个人服务,联系电话:18982081108 在编译libevent时,指定./configure --prefix=/usr
python setup.py build --libevent ..
/libevent-2.0.21-stable
ldd gevent-0.13.8-py2.7-linux-i686.egg-tmp/gevent/core.so用来查看加载的libevent库是否是自己安装的
除了这个还有更蛋疼的问题,就是如果机器的版本不是很高的话可能编译错误,next变量未定义,
这个时候需要进行宏替换,把有next变量的宏展开,
#define TAILQ_GET_NEXT(X) ((X)->next.tqe_next)
然后编译会带有警告,如果继续安装,能够安装成功,但是执行import gevent的时候会报错,TAILQ_FIRST不存在,这个是因为系统定义的冲突了,
被
#if _EVENT_NUMERIC_VERSION >= 0x02000500语句给屏蔽了,这个时候需要把#define TAILQ_FIRST(head) ((head)->tqh_first)放到
#if _EVENT_NUMERIC_VERSION >= 0x02000500之前即可以
另外有解释为什么需要这么做的原因:
C 语言 implicit declaration of function 错误原因
关于 implicit declaration of function 一点经验之谈
用gcc编译c程序的时候 经常会出现
implicit declaration of function '...' 的warning
偶经过这几天的经验,发现主要有2种情况会产生这种warning
1 没有把函数所在的c文件生成.o目标文件
2 在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明
文章名称:pyhtongevent库安装的蛋疼问题-创新互联
分享地址:
http://bjjierui.cn/article/cdsoii.html