在安装gevent时报错C:\leakScan-master\scanner>easy_installgevent
Searchingforgevent
Readinghttp://pypi.python.org/simple/gevent/
Bestmatch:gevent1.0.1
Downloadinghttps://pypi.python.org/packages/source/g/gevent/gevent-1.0.1.tar.gz
#md5=7b952591d1a0174d6eb..
分类:
编程语言 时间:
2014-11-30 17:18:28
阅读次数:
219
今天在用爬虫时gevent报了AssertionError: Impossible to call blocking function in the event loop callback异常,很奇怪,难道是patch_socket惹的货,因为之前没有使用patch_socket是正常的,代码简化如下import urllib
import gevent
from gevent.monkey im...
分类:
其他好文 时间:
2014-11-12 16:40:58
阅读次数:
340
monkey patch指的是在运行时动态替换,一般是在startup的时候.
用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/socket等给替换掉.这样我们在后面使用socket的时候可以跟平常一样使用,无需修改任何代码,但是它变成非阻塞的了.
之前做的一个游戏服务器,很多地方用的import json,后来发现ujs...
分类:
其他好文 时间:
2014-10-20 11:44:41
阅读次数:
224
1.安装flaskpip install flask2.安装geventpip install gevent3.安装gunicornpip install gunicorn版本信息例如以下:[root@rs-2 ~]# pip listFlask (0.10.1)gevent (1.0.1)gree...
分类:
其他好文 时间:
2014-10-12 11:02:38
阅读次数:
279
直接使用 pip 安装,连 example project 都运行不了。。。
要正常使用,关键是要使用正确版本的依赖包
Django (1.5.5)
django-socketio (0.3.2)
gevent (0.13.6)
gevent-socketio (0.2.1)
geve...
分类:
其他好文 时间:
2014-10-09 14:03:03
阅读次数:
251
之前看到geventhttpclient这个项目,https://github.com/gwik/geventhttpclient,官方文档说非常快,因为响应使用了C的解析,所以我一直想把这玩意用到项目中,这两天一直在纠结这玩意,说实在一句话,比較难用,封装的不给力,最大缺陷例如以下:1.不支持重定...
分类:
编程语言 时间:
2014-09-27 21:25:30
阅读次数:
273
c-ares是异步DNS请求库,libcurl,libevent,wireshark都使用了c-ares,gevent1.0版本前使用的是libevent,
所以它的DNS请求也是使用c-ares,1.0版本后使用cython封装了c-ares。c-ares官方文档,http://c-ares.haxx.se/docs.html。...
分类:
其他好文 时间:
2014-09-17 01:11:11
阅读次数:
864
add by zhj:个人认为gevent还是更牛逼一些,当然,这只是我简单的分析,没有试验过。对比分析如下:使用Tornado,启动一个进程,N个线程使用Gevent,启动一个进程,N个协程CPU除了执行用户代码外,就是调用调用程序进行线程/协程切换。而协程切换要比线程切换的开销小,速度快,所以G...
分类:
其他好文 时间:
2014-09-14 02:32:06
阅读次数:
513
gevent core就是封装了libev,使用了cython的语法,感兴趣童鞋可以好好研究研究。其实libev是有python的封装pyev(https://pythonhosted.org/pyev/),不过pyev是使用C来写扩展的,代码巨复杂。在看core.pyx代码之前先学习一下core.pyx用到的cython知识。一: cython基础知识1.cdef, def, cpdef的区别 ...
分类:
其他好文 时间:
2014-09-13 20:09:35
阅读次数:
354
首先介绍下python异步执行,python有两种方法编写异步代码:1、corutines协程(也称为greenlets)2、回调gevent是greenlets的一种实现方式,可以通过pip方便的安装gevent模块。gevent执行方式实际上是代码块的交替执行,具体的可以看下这篇blog,我就不...
分类:
移动开发 时间:
2014-09-10 17:22:50
阅读次数:
499