venv環境をプロンプトに表示¶
2020年04月11日
現在のvenv環境を知る¶
activateで環境変数 VIRTUAL_ENV がセットされる。 deactivateでアンセット。
$ echo $VIRTUAL_ENV
/home/hideo/work/memosphinx/venv
よってこのまま表示するなら、 プロンプトで $VIRTUAL_ENV を指定するだけでOK。
venvフォルダを含むフォルダ名だけ表示したい。¶
$ echo $(basename $(dirname $VIRTUAL_ENV))
memosphinx
結論¶
.bashrcで以下の関数を定義。
function venvname() {
# https://qiita.com/ymdymd/items/51bf4145ec58654eaffc
if [ "${VIRTUAL_ENV:+UNDEF}" ]; then
echo $(basename $(dirname $VIRTUAL_ENV))
fi
}
プロンプトの方は以下のように書き換える。
if [ "$color_prompt" = yes ]; then
PS1='`venvname`\n${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '
else
PS1='`venvname`\n${debian_chroot:+($debian_chroot)}\u@\h:\w\n\$ '
fi
こうすると、venv環境内にあるときは以下のようなプロンプトとなる。
(venv) memosphinx
hideo@winston:~/work/memosphinx
$