At the moment, doing pip install matplotlib will fail on Travis for two reasons:
pip install matplotlib
If python-dateutil is not available, a Permission Denied error will be raised when Matplotlib tries to install it:
This can be 'fixed' by pre-installing python-dateutil (and I think the same would happen for pytz, so I pre-emptively installed it too). So maybe this isn't really a bug, just a limitation of installing packages from another package.
The use of multiprocessing for running 2to3 will also raise a Permission Denied, though I'm not too sure why:
However, fixing the setup.py file so that 2to3 is just run sequentially without resorting to multiprocessing and then serving the patched file to Travis seems to do the trick.
So maybe Travis has some limitations on the number of processes that can be run?
Either way, it seems to me it might be good to make matplotlib Travis-proof and if the multiprocessing doesn't work for 2to3, maybe it should resort to running them sequentially?
For the first one -- is the permission denied for build/lib*/? Any idea why? That seems weird. I'll probably need to fire up my local Travis VM to get the bottom of this -- just wondering if you had any thoughts.
The parallel 2to3 can probably be wrapped in a try...except and turned off if necessary.
We're seeing similar things with our own Travis tests -- the Python 3 tests used to work but recently stopped, with a similar "Permission denied" error. I can't reproduce it in a Travis VM, so it's not at all clear what's going on here, but I will keep this space posted as information develops.
It does seem that avoiding multiprocessing helps. See #1784.
Can you confirm that pip installing from the v1.2.x or master branch works? If so, we can probably close this bug now.
@mdboom - just tried with master and it worked - thanks!
Great. I'll go ahead and close this then. You can always pip install from a git url until our next release that incorporates this fix has an official entry on PyPI.