PyZMQ: Python bindings for zeromq
Latest commit a69e32b Sep 26, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
RELICENSE RELICENSE: frankwiles Oct 3, 2017
buildutils build: Respect CC and other envvars when testing for timer_create() Aug 9, 2018
docs changelog for 17.1.2 Aug 10, 2018
examples Asyncio example for pub/sub with dealer/router Jun 26, 2018
packaging Problem: package versions out of date Aug 17, 2018
perf re-run perf notebook Sep 5, 2017
tools one more 3.5 reference Jul 30, 2018
zmq Use Device's methods to bind to random ports in tests Sep 4, 2018
.gitignore ignore some artifacts Aug 3, 2018
.mailmap update authors and mailmap Oct 17, 2014
.travis.yml scrap pip update Aug 20, 2018 update authors and mailmap Oct 17, 2014 add new Issue notes to Oct 4, 2012
COPYING.BSD Updating license of zmqweb to BSD. Mar 1, 2012
COPYING.LESSER include libzmq static-link exception Nov 23, 2015 bundle tweetnacl instead of libsodium Jan 19, 2016 Fixed Pypi link Sep 26, 2018
Vagrantfile adding Vagrantfile support Nov 26, 2016
appveyor.yml Python 3.7 on appveyor Jul 11, 2018 add sample android cross-compile setup.cfg Feb 3, 2013
setup.cfg.template Support for building the extension with statically linked libzmq May 7, 2018 Add support for zmq_proxy_steerable Aug 16, 2018 deprecate Apr 16, 2015
test-requirements.txt skip gevent tests on windows Jul 5, 2018 update copyright and headers Jun 10, 2014

PyZMQ: Python bindings for ØMQ

Build Status

Windows Build status

This package contains Python bindings for ØMQ. ØMQ is a lightweight and fast messaging implementation.

PyZMQ should work with any reasonable version of Python (≥ 3.4), as well as Python 2.7 and 3.3, as well as PyPy. The Cython backend used by CPython supports libzmq ≥ 2.1.4 (including 3.2.x and 4.x), but the CFFI backend used by PyPy only supports libzmq ≥ 3.2.2 (including 4.x).

For a summary of changes to pyzmq, see our changelog.

ØMQ 3.x, 4.x

PyZMQ fully supports the 3.x and 4.x APIs of libzmq, developed at zeromq/libzmq. No code to change, no flags to pass, just build pyzmq against the latest and it should work.

PyZMQ does not support the old libzmq 2 API on PyPy.


See PyZMQ's Sphinx-generated documentation on GitHub for API details, and some notes on Python and Cython development. If you want to learn about using ØMQ in general, the excellent ØMQ Guide is the place to start, which has a Python version of every example. We also have some information on our wiki.


Unless you specifically want to develop PyZMQ, we recommend downloading the PyZMQ source code or wheels from PyPI, or install with conda.

You can also get the latest source code from our GitHub repository, but building from the repository will require that you install recent Cython.

Building and installation

For more detail on building pyzmq, see our Wiki.

We build wheels for OS X, Windows, and Linux, so you can get a binary on those platforms with:

pip install pyzmq

but compiling from source with pip install pyzmq should work in most environments. Especially on OS X, make sure you are using the latest pip (≥ 8), or it may not find the right wheels.

If the wheel doesn't work for some reason, or you want to force pyzmq to be compiled (this is often preferable if you already have libzmq installed and configured the way you want it), you can force installation with:

pip install --no-use-wheel pyzmq

When compiling pyzmq (e.g. installing with pip on Linux), it is generally recommended that zeromq be installed separately, via homebrew, apt, yum, etc:

# Debian-based
sudo apt-get install libzmq3-dev

# RHEL-based
sudo yum install libzmq3-devel

If this is not available, pyzmq will try to build libzmq as a Python Extension, though this is not guaranteed to work.

Building pyzmq from the git repo (including release tags on GitHub) requires Cython.

Old versions

pyzmq 16 drops support Python 2.6 and 3.2. If you need to use one of those Python versions, you can pin your pyzmq version to before 16:

pip install 'pyzmq<16'

For libzmq 2.0.x, use 'pyzmq<2.1'

pyzmq-2.1.11 was the last version of pyzmq to support Python 2.5, and pyzmq ≥ 2.2.0 requires Python ≥ 2.6. pyzmq-13.0.0 introduces PyPy support via CFFI, which only supports libzmq-3.2.2 and newer.

PyZMQ releases ≤ 2.2.0 matched libzmq versioning, but this is no longer the case, starting with PyZMQ 13.0.0 (it was the thirteenth release, so why not?). PyZMQ ≥ 13.0 follows semantic versioning conventions accounting only for PyZMQ itself.