Win7 + VS2010 + Python2.7.5 安装 gevent

昨天折腾了下gevent,做个简单的记录。具体环境本文标题已经说得很明白了, win7是32位的

1. 下载gevent安装包

去gevent官网下载个source包, 地址是这里 http://pypi.python.org/packages/source/g/gevent/

我下载到的是 gevent-0.13.8.tar.gz,解压

2. 安装

假设解压到A目录下,则cmd命令窗口 cd 到该目录下,运行里面的fetch_libevent.py文件

python fetch_libevent.py  

执行这个py文件,获得libevent的源码包,接下来是编译,运行里面的setup.py文件

python setup.py build 

如果是我这种环境,这里会出错(安装了VS2008应该没有问题),是VS版本的问题,要手动改下编译设置。

(我的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)

直接写死toolskey = "VS100COMNTOOLS",后面我注释掉的是原来的默认代码。

此时在执行构建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了

你可能感兴趣的:(windows,python,安装,VS2010,gevent)