In article <8ea52e1b-2e02-40b2-8ce0-fcce7fc2e...@googlegroups.com>,
 Miki Tebeka <miki.teb...@gmail.com> wrote:

> Greetings,
> 
> 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.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to