2011-07-26 14 views
5

Kiedy jestem w moim virtualenv i jest on aktywny, nazwa środowiska pojawia się w nawiasach przed zwykłą linią poleceń. Wygląda to tak: (foo-env)User:~/Development/foo-env/foo$ gdzie foo-env to nazwa środowiska. Zastanawiam się, czy istnieje sposób, aby sprawić, aby wiersz polecenia wyświetlał coś w rodzaju (F)User:~/Development/foo-env/foo$ w przeciwieństwie do bieżącego ekranu z (foo-env). Jeśli to możliwe, jak mam to zrobić?Wyświetlanie virtualenv

Dzięki.

Odpowiedz

2

Musisz ustawić zmienną środowiskową $ PS1, aby zmienić monit.

Zapoznaj się z plikami konfiguracyjnymi virtualenv dla ustawienia.

Zobacz, jak ustawić go tak, jak chcesz. Wygląda na to, że wystarczy zamienić ciąg foo-env na F.

6

Więc wymyśliłem, jak to zrobić. W skrypcie aktywacyjnym $PS1 zostaje przedefiniowane, aby poprzedzić nazwę env, w tym przypadku (foo-env). W celu dodania go do tego, co chcesz, musisz przejść do skryptu activate, który uruchamiasz, aby aktywować virtualenv ([yourenv]/bin/activate]). Tam zmienisz linię, która definiuje nową $PS1 z PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1", aby być czymkolwiek chcesz, tutaj PS1="(F)$PS1".

2

Alternatywnie użyj pew (Python Env Wrapper). Wtedy Twój PS1 nie zostanie zniekształcony, gdy użyjesz virtualenv, i możesz ustawić swój PS1 w swoim .bashrc (itp.) Jak zwykle, wyświetlając $VIRTUAL_ENV, jeśli jest ustawiony. Odpowiedni fragment mine wygląda następująco:

# python virtual env, however it comes to be 
if [ -z ${VIRTUAL_ENV+x} ] 
then 
VENV_NOTICE="" 
else 
VENV_NOTICE=" (py: $(basename "$VIRTUAL_ENV"))" 
fi 

PS1='whatever $VENV_NOTICE else'