pyzmq - 未定义的符号:zmq_msg_gets

pyzmq - undefined symbol: zmq_msg_gets

我遇到 zeromq 问题,我收到此错误:

    Traceback (most recent call last):   File "BasicPub.py", line 1, in <module>
    import zmq   File "/home/przemek/Enthought/Canopy_32bit/User/lib/python2.7/site-packages/zmq/__init__.py", line 66, in <module>
    from zmq import backend   File "/home/przemek/Enthought/Canopy_32bit/User/lib/python2.7/site-packages/zmq/backend/__init__.py", line 40, in <module>
    reraise(*exc_info)   File "/home/przemek/Enthought/Canopy_32bit/User/lib/python2.7/site-packages/zmq/backend/__init__.py", line 27, in <module>
    _ns = select_backend(first)   File "/home/przemek/Enthought/Canopy_32bit/User/lib/python2.7/site-packages/zmq/backend/select.py", line 27, in select_backend
    mod = __import__(name, fromlist=public_api)   File "/home/przemek/Enthought/Canopy_32bit/User/lib/python2.7/site-packages/zmq/backend/cython/__init__.py", line 6, in <module>
    from . import (constants, error, message, context, ImportError: /home/przemek/Enthought/Canopy_32bit/User/lib/python2.7/site-packages/zmq/backend/cython/message.so: undefined symbol: zmq_msg_gets

我是这样安装的:

tar xzvf zeromq-4.1.4.tar.gz 
./configure
./configure --without-libsodium
make
sudo make install
pip install pyzmq

我使用 python2.7 和 Ubuntu 14.04

你能帮帮我吗?

如果您使用 pip 安装 pyzmq,我建议尝试安装捆绑到 pyzmq 的 zmq:

  pip install pyzmq --install-option="--zmq=bundled"

zeromq 4.0.4(ubuntu/可信版本)没有函数 zmq_msg_gets 而 zeromq 4.1.4 有那个函数,这表明使用了错误版本的 C 库.

可能在构建 pyzmq 时发现了新版本的 C 库,但由于某种原因,在加载模块时加载了旧版本。