ImportError:无法导入名称常量

aru*_*174 3 python zeromq pyzmq

我正在尝试使用pyzmq运行一段简单的代码.我使用的是Python 2.7和pyzmq 14.5

$ python --version
Python 2.7.6
$ sudo find /usr -name "*pyzmq*"
/usr/local/lib/python2.7/dist-packages/pyzmq-14.5.0.egg-info
/usr/lib/python2.7/dist-packages/pyzmq-14.0.1.egg-info
Run Code Online (Sandbox Code Playgroud)

以下是我正在尝试运行的代码:

import zhelpers

context = zmq.Context.instance()
server = context.socket(zmq.ROUTER)
server.bind("tcp://*:5678")

while (1):
    address, empty, data = server.recv_multipart()

    print("address = %s, data = %d" % (address, int(data)))

    data_i = int(data) + 10
    server.send_multipart([
        address,
        b'',
        str(data_i),
    ])
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下错误,并不知道如何解决这个问题:

Traceback (most recent call last):
  File "reqrep_server.py", line 8, in <module>
    import zhelpers
  File "/home/arun/pyzmq_server/zhelpers.py", line 11, in <module> 
    import zmq
  File "/home/arun/pyzmq_server/zmq/__init__.py", line 66, in <module>
    from zmq import backend
  File "/home/arun/pyzmq_server/zmq/backend/__init__.py", line 41, in <module>
    reraise(*exc_info)
  File "/home/arun/pyzmq_server/zmq/backend/__init__.py", line 29, in <module>
    _ns = select_backend(first)
  File "/home/arun/pyzmq_server/zmq/backend/select.py", line 27, in select_backend
    mod = __import__(name, fromlist=public_api)
  File "/home/arun/pyzmq_server/zmq/backend/cython/__init__.py", line 6, in <module>
    from . import (constants, error, message, context, socket, utils, _poll, _version, _device)
ImportError: cannot import name constants
Run Code Online (Sandbox Code Playgroud)

我已经复制了整个zmq文件夹并将其作为我的.py文件放在该级别中.

请帮忙!

编辑:

我已经删除了这两个版本的pyzmq,并按照此处的说明重新安装了最新的pyzmq(这次捆绑了libzmq).

$ sudo find /usr -name "*pyzmq*"
/usr/local/lib/python2.7/dist-packages/pyzmq-14.7.0-py2.7.egg-info

$ sudo find /usr -name "*libzmq*"
/usr/local/lib/libzmq.so
/usr/local/lib/libzmq.la
/usr/local/lib/libzmq.so.5.0.0
/usr/local/lib/pkgconfig/libzmq.pc
/usr/local/lib/libzmq.so.5
/usr/local/lib/python2.7/dist-packages/zmq/libzmq.so
/usr/local/lib/python2.7/dist-packages/zmq/backend/cython/libzmq.pxd
/usr/local/lib/libzmq.a
Run Code Online (Sandbox Code Playgroud)

但这并没有解决问题.我收到了同样的错误!

编辑:

问题解决了!我是Python的新手,并没有遵循适当的文件夹/模块结构进行导入.然而回溯并不是很有帮助.

Aaz*_*zim 9

我遇到了类似的问题.pip install --upgrade pyzmq为我做了诀窍

  • 不适合我,不幸的是 (8认同)