gevent庫是python中的一個用于實現(xiàn)并發(fā)的庫,python本身并發(fā)性能并不好,在gevent庫的協(xié)助下,python并發(fā)性也能發(fā)揮的很好。于是安裝gevent庫成為python并發(fā)的一個必須需求。但是安裝gevent庫總是很多蛋疼,下面我說說那些蛋疼的事情:
gevent庫是依賴于python的另外兩個庫的,libevent和greenlet,得先分別安裝這兩個庫,安裝這兩個庫的時候最好都使用最新的版本,否則太舊版本可能出現(xiàn)不兼容的問題,然后于是本機上之前已經(jīng)安裝過libevent庫,在安裝gevent的時候就需要指定自己安裝的libevent庫了,通過如下命令:
創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元管城做網(wǎng)站,已為上家服務(wù),為管城各地企業(yè)和個人服務(wù),聯(lián)系電話: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)
然后編譯會帶有警告,如果繼續(xù)安裝,能夠安裝成功,但是執(zhí)行import gevent的時候會報錯,TAILQ_FIRST不存在,這個是因為系統(tǒng)定義的沖突了,
被
#if _EVENT_NUMERIC_VERSION >= 0x02000500語句給屏蔽了,這個時候需要把#define TAILQ_FIRST(head) ((head)->tqh_first)放到
#if _EVENT_NUMERIC_VERSION >= 0x02000500之前即可以
另外有解釋為什么需要這么做的原因:
C 語言 implicit declaration of function 錯誤原因
關(guān)于 implicit declaration of function 一點經(jīng)驗之談
用gcc編譯c程序的時候 經(jīng)常會出現(xiàn)
implicit declaration of function '...' 的warning
偶經(jīng)過這幾天的經(jīng)驗,發(fā)現(xiàn)主要有2種情況會產(chǎn)生這種warning
1 沒有把函數(shù)所在的c文件生成.o目標文件
2 在函數(shù)所在的c文件中定義了,但是沒有在與之相關(guān)聯(lián)的.h文件中聲明
標題名稱:pyhtongevent庫安裝的蛋疼問題-創(chuàng)新互聯(lián)
URL分享:
http://weahome.cn/article/cdsoii.html