OSX安装gevent
her0kings1ey
最近在OSX下尝试安装运行gevent的examples中间遇到了十分多的麻烦,在这里记录一下安装运行的过程,省得自己以后忘记。
概要
以下是在OSX下安装gevent的概要,方便各位(主要是以后的自己)迅速完成安装。
- 安装libevent环境(可以通过brew install libevent) 的方式把libevent的环境安装到/usr/local/下
- 不要使用系统自带的python进行pip install!!!
- 使用pyenv在/usr/local/下安装python(pyenv install 2.7.11,如果遇到Build failed: "ERROR: The Python zlib extension was not compiled. Missing the zlib?"这个报错,需要执行xcode-select --install命令 。安装完毕后使用pyenv global 2.7.11命令切换python版本)
- 使用pip install greenlet安装greenlet
- 使用pip install gevent完成gevent安装
这样就完成了gevent的安装,随便运行examples目录下的一个例子(如:echoserver.py)验证。
gevent简介
gevent is a coroutine -based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libev event loop.
Features include:
· Fast event loop based on libev (epoll on Linux, kqueue on FreeBSD).
· Lightweight execution units based on greenlet.
· API that re-uses concepts from the Python standard library (for example there aregevent.event.Events and gevent.queue.Queues).
· Cooperative sockets with SSL support
· DNS queries performed through threadpool or c-ares.
· Monkey patching utility to get 3rd party modules to become cooperative
gevent是一个基于协程的python网络库,它通过greenlet来提供一个底层为libev的事件循环的高层的同步API借口。
它包含以下特性:
- 基于libev的高效事件循环器(linux下基于epoll,FreeBSD基于kqueue)
- 基于greenlet的轻量级执行单元
- API重用了python标准库的概念(如:gevent.event.Events 和gevent.queue.Queues)
- socket对SSL的支持
- 通过线程池来执行DNS查询
- 通过monkey patching的方式来引入第三方模块。
以上是来自于gevent官方网站的简介。通过gevent我们能在python下进行网络编程。
gevent的安装
通过brew install安装libevent。
brew是一个OSX安装软件的利器。它会安装到homebrew自己的目录并且在/usr/local/下建立软链。
安装pyenv(brew install pyenv),然后通过pyenv install 2.7.11的方法安装python
在同一主机上拥有多个python版本,并能进行简单切换。(在/usr/local/下)
pip安装cython
cython是c在python下的一个扩展,能通过python调用native方法。
pip安装greenlet
python的一个协程库。
pip安装gevent
最后,后面会继续基于gevent进行网络编程的学习。
Reference
- mac 下安装gevent
https://www.phodal.com/blog/mac-os-x-10-9-install-gevent-greenlet/ - pyenv issue(常见构建问题)
https://github.com/yyuu/pyenv/wiki/Common-build-problems - 10.10以前的版本安装gevent的一种方法
http://guoqiao.me/post/2015/0102-pip-sudofree-on-mac-os-x
网友评论