Wow, good catch Andrew!

Can you open a pull request for this?  I think we were planning on doing a 2.6.2 release due to an issue with our source distribution that was recently fixed - it would be good if this fix was part of that.

On Sunday, February 2, 2014, Andrew Myers <atmyers2@gmail.com> wrote:
I think I found the problem. The install script first builds the ZeroMQ library, and then tries to build PyZMQ bindings for it. The problem was that the script was not passing in the location of the newly-built ZeroMQ when it ran setup.py for PyZMQ. Instead, PyZMQ tries to use a bundled zmq, which doesn't work correctly. The fix was to manually re-build PyZMQ, passing in the location of the new libraries. The install script picked up from there normally.

Why didn't the script work? Looking at the function that calls setup for each package:
function do_setup_py
{
    [ -e $1/done ] && return
    LIB=$1
    shift
    if [ -z "$@" ]
    then
        echo "Installing $LIB"
    else
        echo "Installing $LIB (arguments: '$@')"
    fi
    [ ! -e $LIB/extracted ] && tar xfz $LIB.tar.gz
    touch $LIB/extracted
    cd $LIB
    if [ ! -z `echo $LIB | grep h5py` ]
    then
        shift
	( ${DEST_DIR}/bin/python2.7 setup.py build --hdf5=${HDF5_DIR} $* 2>&1 ) 1>> ${LOG_FILE} || do_exit
    else
        shift
        ( ${DEST_DIR}/bin/python2.7 setup.py build   $* 2>&1 ) 1>> ${LOG_FILE} || do_exit
    fi
    ( ${DEST_DIR}/bin/python2.7 setup.py install    2>&1 ) 1>> ${LOG_FILE} || do_exit
    touch done
    cd ..
}
When this function is called, the name of the script is at $0, the library name is at $1, and the rest of the variables hold arguments that should be passed to setup.py. After the first call to shift, the additional args start at $1. The script then calls shift once more, whichever way it branches, so that the first additional argument is no longer contained in $*. So, this function loses the first arg. For PyZMQ, the first arg is the location of the zmq library. If I remove the second and third shifts and re-run the install script from the beginning, everything works for me.

-Andrew

 


On Sat, Feb 1, 2014 at 3:16 PM, Andrew Myers <atmyers2@gmail.com> wrote:
Hi Hilary,

Thanks for the suggestion. Unfortunately, it didn't work for me - if I install ipython manually, it still fails with the same error message.

I think I'll try to ask this at StackOverflow as well, as per Nathan's suggestion.

Thanks,
Andrew


On Sat, Feb 1, 2014 at 10:09 AM, Hilary Egan <hilaryye@gmail.com> wrote:
I saw the same problem when I was installing on CU's janus machine. I'm pretty sure that I got around it by building just ipython by hand and making sure I was on the compile node when I tried it- no idea if there is an equivalent for Hopper.

-download and untar ipython.tar.gz (http://archive.ipython.org/release/)
-cd ipython
-python setup.py install
-touch done

Caveat: I have no idea why this worked when the install script didn't, and I'm just basing my answer on the note I jotted down a few months ago. There's definitely some sort of discussion out there already about this being a problem in some versions in pyzmq (https://github.com/zeromq/pyzmq/pull/218).  Hope that helps!

-Hilary


On Sat, Feb 1, 2014 at 10:49 AM, Nathan Goldbaum <nathan12343@gmail.com> wrote:
Hi Andrew,

Unfortunately I'm not sure what the issue is.

You might try asking this question on StackOverflow (tagging it with IPython and ZMQ) or the IPython-dev mailing list, some of the ZMQ/IPy devs will be more likely to see it.

Nathan


On Saturday, February 1, 2014, Andrew Myers <atmyers2@gmail.com> wrote:
Hi Folks,

I'm trying to install the development version of yt-2.7 on NERSC's Hopper machine using the install script. I get to the part where it tries to build IPython, and then the script fails with the following error message:

============================================================================
BUILDING IPYTHON
                python: 2.7.6 (default, Jan 31 2014, 21:52:04)  [GCC 4.8.1
                        20130531 (Cray Inc.)]
              platform: linux2

OPTIONAL DEPENDENCIES
                sphinx: Not found (required for docs and nbconvert)
              pygments: Not found (required for docs and nbconvert)
                  nose: 1.3.0
               pexpect: no (required for running standalone doctests)
Traceback (most recent call last):
  File "setup.py", line 342, in <module>