{ "metadata": { "name": "", "signature": "sha256:9b3bb0c8b8ac68e4e50844822ab1d62298b666d2a9830d12f21b1e09a3858944" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Or - how wheels rocked my world" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "My world" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I write software for brain imaging: http://nipy.org\n", "\n", "I teach students how to use code for neuroscience.\n", "\n", "The students:\n", "\n", "* Need numpy, scipy, matplotlib, and my packages.\n", "* Use OSX > Windows > Linux. But the worst of these, is OSX\n", "* Usually don't have a compiler installed on their computer\n", "* Need `numpy`, `scipy`, `matplotlib` and my code.\n", "* `pip install matplotlib` anybody?\n", "\n", "And I:\n", "\n", "* Have to keep my code working with `numpy`, `scipy`, `matplotlib`, `sympy`.\n", "\n", "Megainstallers? But - too many systems to test against, no control over packaging." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Now is the winter of our discontent made glorious summer by" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Six months ago I was in despair.\n", "\n", "What about all the dependencies? It's all too much.\n", "\n", "In January - OSX wheels were allowed on pypi.\n", "\n", "My life has changed.\n", "\n", "These guys are so incredibly easy to use..." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "I make a wheel" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%bash\n", "pip install wheel\n", "cd markupsafe\n", "rm -rf build # just to be safe\n", "python setup.py bdist_wheel" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Downloading/unpacking wheel\n", "Installing collected packages: wheel\n", "Successfully installed wheel\n", "Cleaning up...\n", "running bdist_wheel\n", "running build\n", "running build_py\n", "creating build\n", "creating build/lib.macosx-10.6-intel-2.7\n", "creating build/lib.macosx-10.6-intel-2.7/markupsafe\n", "copying markupsafe/__init__.py -> build/lib.macosx-10.6-intel-2.7/markupsafe\n", "copying markupsafe/_compat.py -> build/lib.macosx-10.6-intel-2.7/markupsafe\n", "copying markupsafe/_constants.py -> build/lib.macosx-10.6-intel-2.7/markupsafe\n", "copying markupsafe/_native.py -> build/lib.macosx-10.6-intel-2.7/markupsafe\n", "copying markupsafe/tests.py -> build/lib.macosx-10.6-intel-2.7/markupsafe\n", "running egg_info\n", "creating MarkupSafe.egg-info\n", "writing dependency_links to MarkupSafe.egg-info/dependency_links.txt\n", "writing MarkupSafe.egg-info/PKG-INFO\n", "writing top-level names to MarkupSafe.egg-info/top_level.txt\n", "writing manifest file 'MarkupSafe.egg-info/SOURCES.txt'\n", "reading manifest file 'MarkupSafe.egg-info/SOURCES.txt'\n", "reading manifest template 'MANIFEST.in'\n", "writing manifest file 'MarkupSafe.egg-info/SOURCES.txt'\n", "copying markupsafe/_speedups.c -> build/lib.macosx-10.6-intel-2.7/markupsafe\n", "running build_ext\n", "building 'markupsafe._speedups' extension\n", "creating build/temp.macosx-10.6-intel-2.7\n", "creating build/temp.macosx-10.6-intel-2.7/markupsafe\n", "gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c markupsafe/_speedups.c -o build/temp.macosx-10.6-intel-2.7/markupsafe/_speedups.o\n", "gcc-4.2 -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-2.7/markupsafe/_speedups.o -o build/lib.macosx-10.6-intel-2.7/markupsafe/_speedups.so\n", "installing to build/bdist.macosx-10.6-intel/wheel\n", "running install\n", "running install_lib\n", "creating build/bdist.macosx-10.6-intel\n", "creating build/bdist.macosx-10.6-intel/wheel\n", "creating build/bdist.macosx-10.6-intel/wheel/markupsafe\n", "copying build/lib.macosx-10.6-intel-2.7/markupsafe/__init__.py -> build/bdist.macosx-10.6-intel/wheel/markupsafe\n", "copying build/lib.macosx-10.6-intel-2.7/markupsafe/_compat.py -> build/bdist.macosx-10.6-intel/wheel/markupsafe\n", "copying build/lib.macosx-10.6-intel-2.7/markupsafe/_constants.py -> build/bdist.macosx-10.6-intel/wheel/markupsafe\n", "copying build/lib.macosx-10.6-intel-2.7/markupsafe/_native.py -> build/bdist.macosx-10.6-intel/wheel/markupsafe\n", "copying build/lib.macosx-10.6-intel-2.7/markupsafe/_speedups.c -> build/bdist.macosx-10.6-intel/wheel/markupsafe\n", "copying build/lib.macosx-10.6-intel-2.7/markupsafe/_speedups.so -> build/bdist.macosx-10.6-intel/wheel/markupsafe\n", "copying build/lib.macosx-10.6-intel-2.7/markupsafe/tests.py -> build/bdist.macosx-10.6-intel/wheel/markupsafe\n", "running install_egg_info\n", "Copying MarkupSafe.egg-info to build/bdist.macosx-10.6-intel/wheel/MarkupSafe-0.23-py2.7.egg-info\n", "running install_scripts\n", "creating build/bdist.macosx-10.6-intel/wheel/MarkupSafe-0.23.dist-info/WHEEL\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "!ls markupsafe/dist" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "MarkupSafe-0.23-cp27-none-macosx_10_6_intel.whl\r\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Done! But what is this thing?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%bash\n", "mkdir wheel_contents\n", "cd wheel_contents\n", "unzip ../markupsafe/dist/MarkupSafe-0.23-cp27-none-macosx_10_6_intel.whl" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Archive: ../markupsafe/dist/MarkupSafe-0.23-cp27-none-macosx_10_6_intel.whl\n", " inflating: markupsafe/__init__.py \n", " inflating: markupsafe/_compat.py \n", " inflating: markupsafe/_constants.py \n", " inflating: markupsafe/_native.py \n", " inflating: markupsafe/_speedups.c \n", " inflating: markupsafe/_speedups.so \n", " inflating: markupsafe/tests.py \n", " inflating: MarkupSafe-0.23.dist-info/DESCRIPTION.rst \n", " inflating: MarkupSafe-0.23.dist-info/metadata.json \n", " inflating: MarkupSafe-0.23.dist-info/top_level.txt \n", " inflating: MarkupSafe-0.23.dist-info/WHEEL \n", " inflating: MarkupSafe-0.23.dist-info/METADATA \n", " inflating: MarkupSafe-0.23.dist-info/RECORD \n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "It seems too easy. Can I ship this wheel? Maybe it depends on some library on my system I don't know about?" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Delocate" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%bash\n", "pip install delocate" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Downloading/unpacking delocate\n", "Requirement already satisfied (use --upgrade to upgrade): wheel in /Users/mb312/.virtualenvs/lightning/lib/python2.7/site-packages (from delocate)\n", "Installing collected packages: delocate\n", "Successfully installed delocate\n", "Cleaning up...\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "!delocate-listdeps -a markupsafe/dist/MarkupSafe-0.23-cp27-none-macosx_10_6_intel.whl" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/usr/lib/libSystem.B.dylib\r\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "No - looks good - go ahead and ship." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Delocating" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!delocate-listdeps -a scipy-0.14.0-cp27-none-macosx_10_6_intel.whl" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate\r\n", "/usr/lib/libSystem.B.dylib\r\n", "/usr/lib/libstdc++.6.0.9.dylib\r\n", "/usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libgcc_s.1.dylib\r\n", "/usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libgfortran.3.dylib\r\n", "/usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libquadmath.0.dylib\r\n" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "%%bash\n", "mkdir fixed_wheels\n", "delocate-wheel -w fixed_wheels scipy-0.14.0-cp27-none-macosx_10_6_intel.whl\n", "delocate-listdeps -a fixed_wheels/scipy-0.14.0-cp27-none-macosx_10_6_intel.whl" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate\n", "/usr/lib/libSystem.B.dylib\n", "/usr/lib/libstdc++.6.0.9.dylib\n", "@loader_path/../../../../.dylibs/libgcc_s.1.dylib\n", "@loader_path/../../../../.dylibs/libgfortran.3.dylib\n", "@loader_path/../../../../.dylibs/libquadmath.0.dylib\n", "@loader_path/../../../.dylibs/libgcc_s.1.dylib\n", "@loader_path/../../../.dylibs/libgfortran.3.dylib\n", "@loader_path/../../../.dylibs/libquadmath.0.dylib\n", "@loader_path/../../.dylibs/libgcc_s.1.dylib\n", "@loader_path/../../.dylibs/libgfortran.3.dylib\n", "@loader_path/../../.dylibs/libquadmath.0.dylib\n", "@loader_path/../.dylibs/libgcc_s.1.dylib\n", "@loader_path/../.dylibs/libgfortran.3.dylib\n", "@loader_path/../.dylibs/libquadmath.0.dylib\n", "@loader_path/libgcc_s.1.dylib\n", "@loader_path/libquadmath.0.dylib\n" ] } ], "prompt_number": 7 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "It's pip - anyone can build a cache" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!pip wheel -w my_cache ipython[notebook]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Downloading/unpacking ipython[notebook]\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " Saved ./my_cache/ipython-2.0.0-py27-none-any.whl\r\n", "Downloading/unpacking gnureadline (from ipython[notebook])\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " Saved ./my_cache/gnureadline-6.3.3-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl\r\n", "Downloading/unpacking jinja2 (from ipython[notebook])\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " Saved ./my_cache/Jinja2-2.7.2-py27-none-any.whl\r\n", "Downloading/unpacking pyzmq>=2.1.11 (from ipython[notebook])\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): \r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 0% 4.1kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 0% 8.2kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 0% 12kB \r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 1% 16kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 1% 20kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 1% 24kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 2% 28kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 2% 32kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 2% 36kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 3% 40kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 3% 45kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 3% 49kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 4% 53kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 4% 57kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 4% 61kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 5% 65kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 5% 69kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 5% 73kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 6% 77kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 6% 81kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 6% 86kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 7% 90kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 7% 94kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 7% 98kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 8% 102kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 8% 106kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 8% 110kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 9% 114kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 9% 118kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 9% 122kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 10% 126kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 10% 131kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 10% 135kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 11% 139kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 11% 143kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 11% 147kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 12% 151kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 12% 155kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 12% 159kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 13% 163kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 13% 167kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 13% 172kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 14% 176kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 14% 180kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 14% 184kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 15% 188kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 15% 192kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 15% 196kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 16% 200kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 16% 204kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 16% 208kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 17% 212kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 17% 217kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 17% 221kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 18% 225kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 18% 229kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 18% 233kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 19% 237kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 19% 241kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 19% 245kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 20% 249kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 20% 253kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 20% 258kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 21% 262kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 21% 266kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 21% 270kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 22% 274kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 22% 278kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 22% 282kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 23% 286kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 23% 290kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 23% 294kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 24% 299kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 24% 303kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 24% 307kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 25% 311kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 25% 315kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 25% 319kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 26% 323kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 26% 327kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 26% 331kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 27% 335kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 27% 339kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 27% 344kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 28% 348kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 28% 352kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 28% 356kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 29% 360kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 29% 364kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 29% 368kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 30% 372kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 30% 376kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 30% 380kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 31% 385kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 31% 389kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 31% 393kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 32% 397kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 32% 401kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 32% 405kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 33% 409kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 33% 413kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 33% 417kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 34% 421kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 34% 425kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 34% 430kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 35% 434kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 35% 438kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 35% 442kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 36% 446kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 36% 450kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 36% 454kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 37% 458kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 37% 462kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 37% 466kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 37% 471kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 38% 475kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 38% 479kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 38% 483kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 39% 487kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 39% 491kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 39% 495kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 40% 499kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 40% 503kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 40% 507kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 41% 512kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 41% 516kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 41% 520kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 42% 524kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 42% 528kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 42% 532kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 43% 536kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 43% 540kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 43% 544kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 44% 548kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 44% 552kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 44% 557kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 45% 561kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 45% 565kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 45% 569kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 46% 573kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 46% 577kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 46% 581kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 47% 585kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 47% 589kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 47% 593kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 48% 598kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 48% 602kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 48% 606kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 49% 610kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 49% 614kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 49% 618kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 50% 622kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 50% 626kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 50% 630kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 51% 634kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 51% 638kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 51% 643kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 52% 647kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 52% 651kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 52% 655kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 53% 659kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 53% 663kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 53% 667kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 54% 671kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 54% 675kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 54% 679kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 55% 684kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 55% 688kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 55% 692kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 56% 696kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 56% 700kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 56% 704kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 57% 708kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 57% 712kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 57% 716kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 58% 720kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 58% 724kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 58% 729kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 59% 733kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 59% 737kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 59% 741kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 60% 745kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 60% 749kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 60% 753kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 61% 757kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 61% 761kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 61% 765kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 62% 770kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 62% 774kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 62% 778kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 63% 782kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 63% 786kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 63% 790kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 64% 794kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 64% 798kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 64% 802kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 65% 806kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 65% 811kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 65% 815kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 66% 819kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 66% 823kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 66% 827kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 67% 831kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 67% 835kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 67% 839kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 68% 843kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 68% 847kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 68% 851kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 69% 856kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 69% 860kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 69% 864kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 70% 868kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 70% 872kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 70% 876kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 71% 880kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 71% 884kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 71% 888kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 72% 892kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 72% 897kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 72% 901kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 73% 905kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 73% 909kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 73% 913kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 74% 917kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 74% 921kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 74% 925kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 74% 929kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 75% 933kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 75% 937kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 75% 942kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 76% 946kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 76% 950kB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 76% 954kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 77% 958kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 77% 962kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 77% 966kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 78% 970kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 78% 974kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 78% 978kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 79% 983kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 79% 987kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 79% 991kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 80% 995kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 80% 999kB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 80% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 81% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 81% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 81% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 82% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 82% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 82% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 83% 1.0MB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 83% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 83% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 84% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 84% 1.0MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 84% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 85% 1.1MB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 85% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 85% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 86% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 86% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 86% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 87% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 87% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 87% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 88% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 88% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 88% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 89% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 89% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 89% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 90% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 90% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 90% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 91% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 91% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 91% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 92% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 92% 1.1MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 92% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 93% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 93% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 93% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 94% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 94% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 94% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 95% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 95% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 95% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 96% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 96% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 96% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 97% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 97% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 97% 1.2MB" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 98% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 98% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 98% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 99% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 99% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 99% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 100% 1.2MB\r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): \r", " Downloading pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl (1.2MB): 1.2MB downloaded\r\n", " Saved ./my_cache/pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Downloading/unpacking tornado>=3.1 (from ipython[notebook])\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " Saved ./my_cache/tornado-3.2.1-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl\r\n", "Downloading/unpacking markupsafe (from jinja2->ipython[notebook])\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " Saved ./my_cache/MarkupSafe-0.23-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl\r\n", "Downloading/unpacking backports.ssl-match-hostname (from tornado>=3.1->ipython[notebook])\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " Saved ./my_cache/backports.ssl_match_hostname-3.4.0.2-py27-none-any.whl\r\n", "Cleaning up...\r\n" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "ls my_cache" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Jinja2-2.7.2-py27-none-any.whl\r\n", "MarkupSafe-0.23-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl\r\n", "backports.ssl_match_hostname-3.4.0.2-py27-none-any.whl\r\n", "gnureadline-6.3.3-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl\r\n", "ipython-2.0.0-py27-none-any.whl\r\n", "pyzmq-14.3.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl\r\n", "tornado-3.2.1-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.whl\r\n" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And if you do that for a few packages, and put them online, you can build installers for the whole scipy stack and more:\n", "\n", "https://nipy.bic.berkeley.edu/scipy_installers/" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Numpy - scipy - matplotlib - problem solved" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%bash\n", "virtualenv scipy-stack-lite\n", ". scipy-stack-lite/bin/activate\n", "pip install numpy scipy matplotlib" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "New python executable in scipy-stack-lite/bin/python\n", "Installing setuptools, pip...done.\n", "Downloading/unpacking numpy\n", "Downloading/unpacking scipy\n", "Downloading/unpacking matplotlib\n", "Downloading/unpacking nose (from matplotlib)\n", "Downloading/unpacking python-dateutil (from matplotlib)\n", " Running setup.py (path:/Users/mb312/talks/package_lightning/scipy-stack-lite/build/python-dateutil/setup.py) egg_info for package python-dateutil\n", " \n", "Downloading/unpacking tornado (from matplotlib)\n", "Downloading/unpacking pyparsing>=1.5.6 (from matplotlib)\n", " Running setup.py (path:/Users/mb312/talks/package_lightning/scipy-stack-lite/build/pyparsing/setup.py) egg_info for package pyparsing\n", " \n", "Downloading/unpacking six (from python-dateutil->matplotlib)\n", " Downloading six-1.6.1-py2.py3-none-any.whl\n", "Downloading/unpacking backports.ssl-match-hostname (from tornado->matplotlib)\n", "Installing collected packages: numpy, scipy, matplotlib, nose, python-dateutil, tornado, pyparsing, six, backports.ssl-match-hostname\n", " Running setup.py install for python-dateutil\n", " \n", " Running setup.py install for pyparsing\n", " \n", "Successfully installed numpy scipy matplotlib nose python-dateutil tornado pyparsing six backports.ssl-match-hostname\n", "Cleaning up...\n" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Requirements files" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!curl https://nipy.bic.berkeley.edu/scipy_installers/scipy-stack-1.0-plus.txt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "# pip requirements file for scipy stack 1.0\r\n", "# http://www.scipy.org/stackspec.html\r\n", "#\r\n", "# use with `pip install -r scipy-stack-1.0.txt`\r\n", "# pip requirement is not part of scipy-stack, but makes it possible to use OSX\r\n", "# wheels\r\n", "# numexpr is not part of scipy-stack but gives extra speed for pandas\r\n", "# ipython[test] is not part of the scipy-stack but allows us to test ipython\r\n", "-f https://nipy.bic.berkeley.edu/scipy_installers\r\n", "pip>=1.5.4\r\n", "numpy>=1.6\r\n", "scipy>=0.10\r\n", "pytz\r\n", "tornado\r\n", "python-dateutil\r\n", "matplotlib>=1.1\r\n", "pyzmq\r\n", "ipython[notebook,test]>=0.13\r\n", "numexpr\r\n", "pandas>=0.8\r\n", "sympy>=0.7\r\n", "nose>=1.1\r\n" ] } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "There's no way those wheels will work on OSX 10.6!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can test it on a real machine. Here's a test run on an OSX 10.6 bare machine with no compiler, no Python.org Python. We install Python.org Python and the whole scipy / statistics / data stack via pip and wheels, and run tests on the installed packages.\n", "http://nipy.bic.berkeley.edu/builders/scipy-stack-2.7.6-wheel-requires/builds/11\n", "\n", "The same machine, installing and testing on Python 3.3: http://nipy.bic.berkeley.edu/builders/scipy-stack-3.3.5-wheel-requires/builds/4\n", "\n", "This runs every morning on our buildbot - configuration at https://github.com/nipy/nibotmi" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "OK - but there's no way they will work on homebrew etc!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Thanks to Matt Terry and travis-ci.org: https://travis-ci.org/matthew-brett/scipy-stack-osx-testing/builds/25131865\n", "\n", "Testing wheels on bare OSX 10.9 virtual machines with Python from: the OSX system; Python.org; homebrew and macports, with and without virtualenvs.\n", "\n", "Code at: https://github.com/matthew-brett/scipy-stack-osx-testing" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Amazing - now we're testing everything together" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* A day of wheel building\n", "* An old laptop running OSX 10.6\n", "* A server running buildbot (https://github.com/nipy/nibotmi) and serving a directory from https" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "A word on Windows" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* No reason in principle why this would not work just as well on Windows\n", "* Windows binaries are much much harder to build for unrelated reasons : https://github.com/numpy/numpy/wiki/Numerical-software-on-Windows\n", "* Commerically supported installers can use libraries like Intel Math Kernel Library that are not suitable for standard open-source binary installers.\n", "* Dependencies can be dealt with by static linking\n", "* New mingw-w64 toolchain by Carl Kleffner may solve this: https://github.com/numpy/numpy/wiki/Mingw-static-toolchain\n", "* Can already build Windows-64 bit wheels using this toolchain : https://nipy.bic.berkeley.edu/scipy_installers/\n", "* Planning a \"Windows Python devkit\" - standard installer package for building extensions on Windows." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Linux, ahead of the packaging curve, but bumpy for wheels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Has been by far the easiest to work with until now\n", "* Wheel filenames cannot yet adequately express compatibility of wheel with Linux flavor.\n", "* Users much more comfortable with compiling\n", "* Huge variety of environments and careful package management makes it less appealing to repeat this work for a Python package\n", "* Can use platform specific wheel caches - e.g. travis build repos: https://nipy.bic.berkeley.edu/scipy_installers/travis/" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Why wheels - er - rock *and* roll" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Very simple format\n", "* Brings compiled code to the mainstream and the mainstream to compiled code\n", "* Simple hosting (pypi, or web directory)\n", "* Hit the sweet spot of simplicity and use\n", "\n", "Thank you packaging team. I think you cracked it." ] } ], "metadata": {} } ] }