On Wed, Jun 15, 2016 at 3:52 PM, Reinout van Rees email@example.com wrote: [...]
It is a very valid point that seems to point solidly at wheels. As, if you use a virtualenv, you don't have access to system python packages. And that's one of the main reasons why the company I work for (still) uses buildout. Buildout has the "syseggrecipe" package that makes it easy to use specific system packages. So.... numpy, psycopg2, matplotlib, mapnik, scipy, hard-to-install packages like that.
So once you use a virtualenv, you're either in a hell because you're compiling all those hard-to-compile packages from scratch, or you're using binary wheels.
Of your list above, I know numpy and scipy now ship manylinux1 wheels, so you don't need to compile them. matplotlib has manylinux1 wheels posted to their mailing list for testing for a few weeks now -- I suspect they'll upload them on for real any day now. Maybe you should nag the psycopg2 and mapnik developers to get with the program (or offer to help) ;-).
Once you've chucked everything into a wheel, there's suddenly a bit less of a necessity for docker. At least, that might be the case.
On the other hand, I could imagine having a base 16.04 docker that we build to instead of a manylinux1 machine that we build to.
Using a manylinux1 image for building is necessary if you want to distribute wheels on PyPI, but if you're just building wheels to deploy to your own controlled environment then it's unnecessary. You can install manylinux1 wheels into a 16.04 docker together with your home-built 16.04 wheels.