Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to configure a RHEL6 server to allow multiple users to run multiple versions of Python, multiple versions of various python modules, and multiple versions of various other programs (e.g. gcc). I believe the appropriate way to do this is to use environment-modules and virtualenv. I'm familiar with virtualenv, but I'm confused about using environment-modules.

I installed Python 2.7.3 with:

# ./configure --prefix=/usr/local
# make && make altinstall

and I can easily enough run Python 2.7.3 with:


I thought I could simply use my module file to preprend my PATH environment variable with /usr/local/python-2.7 but there is not python binary in /usr/local/python-2.7, only a binary called python-2.7.

Am I missing something? How do I use an environment-modules module file to use Python 2.7?

share|improve this question
up vote 1 down vote accepted

If you run it using /usr/local/python-2.7 then the directory to include in your PATH would be /usr/local which is undesirable.

You should do something like this:

rm /usr/local/python-2.7
mkdir -p /usr/local/python-2.7
./configure --prefix=/usr/local/python-2.7
make && make altinstall

Then you can do:


or the environment-modules equivalent. Then it can be run without specifying the directory:


In order to run it directly, then, you'd do this:

share|improve this answer
I see, I just needed to push the Python install in one more directory. I'll give it a shot now. Thanks. – Dylan Hettinger Nov 14 '13 at 23:53
Still had to add a python -> python-2.7 softlink, but now everything works as expected. – Dylan Hettinger Nov 15 '13 at 18:02

You should take a look at VirtualEnv, it's a python tool made to do address exactly what you're looking for.

Python - VirtualEnv

share|improve this answer
Sure, virtualenv does what I need inside Python as mentioned in the question, but I'm talking about multiple versions of Python (and gcc, other misc tools) on the same server, which is what environment-modules is for. It's confusing because Python uses 'modules' and virtualenv lets you manage different versions of python modules, but environment-modules also uses 'modules' to manage different versions of applications and is entirely unrelated to python modules. – Dylan Hettinger Nov 14 '13 at 16:54
If I correctly understand your needs, it more than just the python environment that you need to look at but rather a system-wide solution like Docker, let me know if my assumption is correct. – Dr I Nov 15 '13 at 8:52
Docker does look interesting, I'll keep an eye on it – Dylan Hettinger Nov 15 '13 at 18:01
@DylanHettinger, yeah, its a new way to work with old tools named LXC, it is mostly a high level unified command liner and APIs for LXC indeed with some really interesting implements for Chief/Puppet Master and Heath OpenStack Orchestrators. If you're looking for a WebAdmin dashboard, there is Shipyard that I like :D – Dr I Nov 18 '13 at 10:38

Your Answer


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.