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