zmq version detection #870

jrs65 opened this Issue Oct 14, 2011 · 5 comments


None yet

4 participants

jrs65 commented Oct 14, 2011

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/

minrk commented Oct 14, 2011

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.

fperez commented Oct 14, 2011

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 Oct 14, 2011
jrs65 commented Oct 14, 2011

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 Oct 21, 2011
fperez commented Oct 21, 2011

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 Oct 30, 2011
@mattvonrocketstein mattvonrocketstein pushed a commit to mattvonrocketstein/ipython that referenced this issue Nov 3, 2014
@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