"non central" package management
roy at panix.com
Wed Nov 28 05:21:48 CET 2012
In article <8ea52e1b-2e02-40b2-8ce0-fcce7fc2ef20 at googlegroups.com>,
Miki Tebeka <miki.tebeka at gmail.com> wrote:
> The usual package mangers (easy_install, pip ...) install packages in one
> central location.
> I'm looking for a solution that will allow every project (which run on the
> same machine) use it's own packages and versions of packages. (Context -
> we're running several applications on the same machine, and can't test
> *everything* when we update a package. Also these applications might ship to
> other machines to run - via hadoop streaming).
You want virtualenv. Use pip to install packages, and they'll go into
your (per-project) virtualenv.
> 2. Have a "lib" directory in each application with versioned packages (we use
> something like that with svn:externals for version management).
What we do is run "pip freeze > requirements.txt" and check that into
version control. When we deploy, we create a new virtualenv, then do
"pip install -r requirements.txt".
For hadoop jobs that we run on EMR under mrjob, we have the virtualenv
setup in the bootstrap script.
More information about the Python-list