Skip to content


Subversion checkout URL

You can clone with
Download ZIP


zmq version detection #870

jrs65 opened this Issue · 5 comments

4 participants


I'm trying to use the parallel ipython features, but it keeps exiting with:

ImportError: IPython.parallel requires pyzmq/0MQ >= 2.1.4, you appear to have 2.1.10

Obviously version 2.1.10 is later than 2.1.4. It fails because the comparison relies on the lexicographic ordering of strings (L28 of

elif zmq.__version__ < '2.1.4':                                                            
    raise ImportError("IPython.parallel requires pyzmq/0MQ >= 2.1.4, you appear to have %s"%zmq.__version__)  

This could be fixed by changing the comparison to

elif map(int, zmq.__version__.split('.')) < [2,1,4]:                                                            
    raise ImportError("IPython.parallel requires pyzmq/0MQ >= 2.1.4, you appear to have %s"%zmq.__version__) 

or something similar. There's a few other comparisons in that file that might need changing too, and a similar change needs to be made in IPython/zmq/


I am in the middle of writing the email to ipython lists about this, because I just cut that pyzmq release today, but you were too quick!

0.11 uses a string comparison for checking the pyzmq version, but this obviously doesn't work once you get into double digits. This was fixed in master some time ago, so updating to IPython master (or using pyzmq dev) will avoid the issue.

The issue came up more quickly than anticipated, because libzmq 2.1.5, 2.1.6, and 2.1.8 all had serious bugs, and were superceded immediately, which is how zeromq made it all the way from 2.1.4 in May to 2.1.10 in October.

If you must use released versions of code for some reason, then you must install pyzmq-2.1.9 to work with IPython 0.11.

There are quite a few bugfixes in IPython trunk (as well as the notebook!), and 0.12 is not far off.


Sorry @jrs65, this is really annoying and we realized this would happen when pyzmq 2.1.10 came out. The issue has been fixed in IPython master already, so if you simply update to git master of IPython, it's already gone. You can either do a full git clone, or download a current tarball from the downloads button:

I'm closing it b/c it's actually already fixed in our master. Let us know if you need any help with the update so you can work around this.

@fperez fperez closed this

Great, thanks. I probably should have checked to see if someone had fixed this in an unreleased version! I've fixed it in my local copy for now, but I'll update soon. Cheers.


the wrong check is still used in the setup code:

setupext/        if zmq.__version__ < '2.1.4':
@fperez fperez reopened this

Thanks for the catch, @juliantaylor. We missed that one in the install part. Fortunately it's not as much of a problem, since it only prints a (in this case, misleading) warning, but won't prevent anything from running. Still, we'll fix it up to use the same correct version check already in zmq.__init__.

@minrk minrk closed this in f9cd1da
@ellisonbg ellisonbg referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
@mattvonrocketstein mattvonrocketstein referenced this issue from a commit in mattvonrocketstein/ipython
@minrk minrk fix pyzmq check in setupext to handle 2.1.10
closes gh-870
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.