
pythonのvenvを自動でactivateしたかったので、gitbash上でdirenvを設定しようとしたら、
direnv: PS1 cannot be exported. For more information see https://github.com/direnv/direnv/wiki/PS1
というエラーが出ました。
wikiの対処法だけでは不足だったので、メモしておきます。
.envrcに
source .venv/bin/activate
if [ -z "${VENV_BASE:-}" ] && [ -n "${VIRTUAL_ENV:-}" ]; then
VENV_BASE=$(basename "${VIRTUAL_ENV}")
fi
export VENV_BASE
unset PS1
を設定。
.bashrcに
eval "$(direnv hook bash)"
PS1='${VENV_BASE:+($VENV_BASE)}'$PS1
を追記です。
unset PS1はWikiのままですが、bashrcでプロンプトのPS1を設定するのに少し戸惑いました。
PS1="${VENV_BASE:+($VENV_BASE)}"$PS1 -> 「"」だと設定時に変数展開してしまうのでNG
PS1='${VENV_BASE:+($VENV_BASE)}'$PS1 -> OK
PS1="\${VENV_BASE:+($VENV_BASE)}"$PS1 -> $をエスケープすれば良いので、これでもOK
以上です。
コメント