||# PyZMQ: Python bindings for ØMQ
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
For a summary of changes to pyzmq, see our
### Ø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 Read the Docs] 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
Unless you specifically want to develop PyZMQ, we recommend downloading
the PyZMQ source code or wheels from
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 macOS, 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
Especially on macOS, 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
(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-binary=:all: 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:
sudo apt-get install libzmq3-dev
sudo yum install libzmq3-devel
If this is not available, pyzmq will _try_ to build libzmq as a Python
though this is not guaranteed to work.
Building pyzmq from the git repo (including release tags on GitHub)
## 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.