Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I am developing Python applications in Ubuntu. I want to setup a Distribute/virtualenv/pip ecosystem to manage my Python packages independently of any system Python packages (which I manage in Synaptic, or rather I let the system manage them for me).

I could just install the python-setuptools, python-virtualenv and python-pip system packages and be on my merry way, but I also want to be able to get latest/specific versions of Distribute, virtualenv and pip. There are no PPAs for these, so I'll have to install them manually.

A final complication, is that I want to be able to do this for multiple versions of Python. That is, set up one ecosystem for python2.6, another for python, another for python3, or on a 64-bit system another for chrooted 32-bit Python.

I'm guessing that the process would be something like:

  • Using Python X install my own copy of Distribute to a location in my home folder
  • Using indie Distribute, easy_install pip
  • Using indie pip, install virtualenv
  • Using indie virtualenv, create virtual environment
  • Activate virtual environment, install packages
  • Repeat for Python Y, Z and Q

What installation/configuration options am I looking for?

share|improve this question

2 Answers 2

up vote 1 down vote accepted

virtualenvwrapper does much or all of what you're asking for. It is very popular based on the traffic here and at stackoverflow. It has been packaged in Ubuntu since Precise / 12.04.

virtualenvwrapper is a set of extensions to Ian Bicking’s virtualenv tool. The extensions include wrappers for creating and deleting virtual environments and otherwise managing your development workflow, making it easier to work on more than one project at a time without introducing conflicts in their dependencies.

See this answer on StackOverflow for some examples. In your case, you seem to be looking for this virtualenvwrapper command: mkvirtualenv --python=PYTHON_EXE (makes a virtualenv with a specific Python executable).

Finally, there is a coordinated effort to review and update Python packaging in general and taking platform-specific use cases into account, so you may want to consider following progress in the Python Packaging User Guide.

share|improve this answer
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.