昨天折腾了下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了