Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does Python have something as robust as Ruby's rvm?

This is not a duplicate of this question.

I am already aware of virtualenv and virtualenvwrapper and pip but they don't quite seem to have exactly what I want.

I'm looking for a way that I can not only have multiple versions of Python installed but also multiple versions of Django (for example) and mix and match the "active" version of python and the "active" version of Django.

e.g. I've got Django 1.0, 1.1, and 1.2, and trunk is "active". I want to be able to test it on Python 2.5, 2.6 and 2.7. Then make Django 1.2 "active" and test it on all of my Python versions again.

I can see how I could potentially get by using virtualenv for that example, but say I've got 5 releases of a Django application that I want to test on every combination of Python 2.5, 2.6 and 2.7 and Django versions 1.0, 1.1, and 1.2. At this point, afaik, the number of virtual environments that I'm going to need to create is becoming unmanageable.

I'd like to just be able to say, make Python version X "active", make Django version X "active", and make MyApp version X "active" without having to deal with creating and switching virtualenvs (and I definitely don't want to be doing a bunch of bootstrap scripting).

Does the thing that I'm looking for exist for Python, or is there something that I'm missing about virtualenv, virtualenvwrapper, and pip that can already handle this elegantly?

like image 451
Matthew J Morrison Avatar asked Aug 13 '10 19:08

Matthew J Morrison


2 Answers

I believe pythonbrew is what you're looking for.

Edit: pyenv looks like the preferred solution since 2013.

like image 96
Aissen Avatar answered Oct 09 '22 04:10

Aissen


I believe you can use buildout to do this, though I'm not particularly familiar with it... E.g. http://blog.mfabrik.com/2010/07/16/easily-install-all-python-versions-under-linux-and-osx-using-collective-buildout-python/

like image 34
Joe Kington Avatar answered Oct 09 '22 04:10

Joe Kington