昨天折騰了下gevent,作個簡單的記錄。具體環境本文標題已經說得很明白了, win7是32位的 python
1. 下載gevent安裝包 fetch
去gevent官網下載個source包, 地址是這裏 http://pypi.python.org/packages/source/g/gevent/ ui
我下載到的是 gevent-0.13.8.tar.gz,解壓 spa
2. 安裝 code
假設解壓到A目錄下,則cmd命令窗口 cd 到該目錄下,運行裏面的fetch_libevent.py文件 get
python fetch_libevent.py cmd
執行這個py文件,得到libevent的源碼包,接下來是編譯,運行裏面的setup.py文件 源碼
python setup.py build it
若是是我這種環境,這裏會出錯(安裝了VS2008應該沒有問題),是VS版本的問題,要手動改下編譯設置。 io
(個人Python安裝在C盤根目錄下面,因此)更改C:\Python27\Lib\distutils\msvc9compiler.py文件中的參數設置:
if not productdir or not os.path.isdir(productdir): toolskey = "VS100COMNTOOLS"#"VS%0.f0COMNTOOLS" % version toolsdir = os.environ.get(toolskey, None)
此時在執行構建libevent的命令
python setup.py build
此時可以開始編譯了,可是編譯會報錯:
libevent-src\http.c(145) : error C2011: 'addrinfo' : 'struct' type redefinition
這是由於,VS2010自帶的庫中已經定義了addrinfo這個結構體,因此,改掉libevent-src\http.c裏面的這個結構體的名字,就能編譯了(這個結構體隨便改爲其餘名字就能夠了),我改爲了addrinfo1:
struct addrinfo1 { int ai_family; int ai_socktype; int ai_protocol; size_t ai_addrlen; struct sockaddr *ai_addr; struct addrinfo *ai_next; };而後再構建,就應該OK了
構建完成以後,安裝便可,安裝命令:
python setup.py install
安裝完成以後能夠經過python的help()查看模塊,裏面應該就有gevent了