2011-07-26 9 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])を起動する必要があります。そこでは、新しい$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'