2011-07-26 5 views
5

내 virtualenv에 있는데 활성 상태 일 때 일반 명령 줄 프롬프트보다 괄호 안에 환경 이름이 나타납니다. 모양은 다음과 같습니다. (foo-env)User:~/Development/foo-env/foo$ 여기서 foo-env은 환경의 이름입니다. 나는 커맨드 라인 프롬프트가 현재 (foo-env) 인 디스플레이와 반대로 (F)User:~/Development/foo-env/foo$과 같은 것을 표시 할 수있는 방법이 있는지 궁금해하고있었습니다. 이것이 가능하다면 어떻게해야할까요?virtualenv 표시

감사합니다.

답변

6

그래서 어떻게하는지 알아 냈습니다. 활성화 스크립트에서 $PS1은 env의 이름 앞에 추가됩니다 (이 경우 (foo-env)). 원하는대로 앞에 추가하려면 virtualenv ([yourenv]/bin/activate])을 실행하기 위해 실행하는 activate 스크립트로 이동해야합니다. 여기서 새로운 $PS1을 정의하는 행을 PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"에서 원하는대로 변경합니다 (여기서는 PS1="(F)$PS1").

2

pew (Python Env Wrapper)을 사용하십시오. 그런 다음 PS1은 virtualenv를 사용할 때 맹 글링되지 않으며 을 .bashrc (평소와 같이)에 설정하면 $VIRTUAL_ENV이 표시됩니다. 관련있는 mine 조각은 다음과 같습니다.

# 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'