Skip to content
This repository

zmq version detection #870

Closed
jrs65 opened this Issue · 5 comments

4 participants

Richard Shaw Fernando Perez Min RK Julian Taylor
Richard Shaw

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
IPython/parallel/__init__.py):

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/__init__.py.

Min RK
Owner

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.

Fernando Perez
Owner

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: https://github.com/ipython/ipython/zipball/master.

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.

Fernando Perez fperez closed this
Richard Shaw

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.

Julian Taylor
Collaborator

the wrong check is still used in the setup code:

setupext/setupext.py:142:        if zmq.__version__ < '2.1.4':
Fernando Perez fperez reopened this
Fernando Perez
Owner

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__.

Min RK minrk closed this in f9cd1da
Brian E. Granger ellisonbg referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
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.