在使用zerorpc的时候报错: File "D:\soft\python\lib\site-packages\zerorpc\core.py", line 317, in Pusher def __init__(self, context=None, zmq_socket=zmq.PUSH): AttributeError: module 'zerorpc.gevent_zmq' has no attribute 'PUSH' 提示g
在使用zerorpc的时候报错:
File "D:\soft\python\lib\site-packages\zerorpc\core.py", line 317, in Pusherdef __init__(self, context=None, zmq_socket=zmq.PUSH):
AttributeError: module 'zerorpc.gevent_zmq' has no attribute 'PUSH'
提示gevent_zmq没有PUSH属性,看了官网几个版本的zerorpc的gevent_zmq模块,都是没有PUSH属性的,那么这里的PUSH属性是哪里来的呢?
从报错提示的core.py模块看,发现是zmq_socket=zmq.PUSH调用了该属性
class Pusher(SocketBase):def __init__(self, context=None, zmq_socket=zmq.PUSH):
而zmq则是gevent_zmq的别名,看core.py模块中的导入模块部分
from . import gevent_zmq as zmq解决方法,就是注释掉改行,重写加入以下行:
# from . import gevent_zmq as zmqimport zmq
直接导入zmq,不用gevent_zmq
再次运行,又报错,解决方法雷同,注释,然后重新导入
File "D:\soft\python\lib\site-packages\zerorpc\events.py", line 253, in __init__if zmq_socket_type in (zmq.PUSH, zmq.PUB, zmq.DEALER, zmq.ROUTER):
AttributeError: module 'zerorpc.gevent_zmq' has no attribute 'PUSH'