[Distutils] Docker, development, buildout, virtualenv, local/global install

Nathaniel Smith njs at pobox.com
Wed Jun 15 19:19:08 EDT 2016


On Wed, Jun 15, 2016 at 3:52 PM, Reinout van Rees <reinout at vanrees.org> 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.

-n

-- 
Nathaniel J. Smith -- https://vorpus.org


More information about the Distutils-SIG mailing list