Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. 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 using virtualenv, virtualenvwrapper, zsh, oh-my-zsh, terminator, on Crunchbang.

I'm trying to display the name of the current virtualenv like so

workon example

I've tried many solutions none seems to work, here's my .zshrc file, I know it's no big deal to fix it but I can't find the right solution. It has been a long time since the last time I used Linux for Django development, I forgot what I used to do.

Right now, I see username@crunchbang, I can't tell which virtualenv I'm using.

share|improve this question
I believe you're asking how to set your prompt so that it shows which virtualenv you're in, correct? – slm Aug 16 '13 at 23:54
@slm yes exactly – Lynob Aug 16 '13 at 23:57
up vote 5 down vote accepted

Shell's prompt

Inside your virtualenv environment is a file, bin/activate. You can edit this file to change your prompt to whatever you want it to look like. Specifically this section of the file:

    PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"

The variable PS1 is a special variable that controls what a shell's prompt will look like. Changing its value will change your virtualenv prompt:

PS1="(this is my prompt) "


  1. Create a sample environment.

    $ virtualenv tst-env
  2. When you're using virtualenv you typically source this file.

    $ cd $HOME/tst-env
    $ source bin/activate
    (tst-env)[saml@grinchy tst-env]$ 
  3. After making the above change to the variable PS1 in the bin/activate file my prompt is now this:

    $ source bin/activate
share|improve this answer
tried it now, didn't fix it – Lynob Aug 17 '13 at 9:10
here's my activate file pastebin.com/tZqdr1Yz – Lynob Aug 17 '13 at 11:11
What happens when you source the activate file? Your file worked fine for me. – slm Aug 17 '13 at 12:32
i see no output, so i can't tell what happens, the virtualenv is working other than that i see nothing, maybe it's .zshrc issue or virtualenvwrapper? can this issue be debugged? please note i have 2 virualenv executable files, the normal virtualenv and virtualenv-2.7 is this normal or did virtualenv got downloaded twice? and this is how i installed virtualenv and virualenvwrapper in case it matters sudo pip install virtualenv – Lynob Aug 17 '13 at 13:02
@Fischer - I just double checked it using zsh and it works with that too, so this is most likely an env. issue. Let's ignore the 2 virtualenv's setups for the time being. To debug you can enable it, set -x, in your shell and then re-run the source activate command again. You should see PS1= lines where the prompt is getting set. – slm Aug 17 '13 at 14:11

I just test it on ubuntu 14.04 and i had the same problem. To fix it add this to your .zshrc

source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

or run this in terminal

echo source /usr/share/virtualenvwrapper/virtualenvwrapper.sh >> ~/.zshrc

In Mac OS X I had to do

echo source /usr/local/bin/virtualenvwrapper.sh >> ~/.zshrc
share|improve this answer

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.