🙄
仮想環境のディレクトリを `.venv` にする場合のTips
Pythonのプロジェクトのディレクトリ内に仮想環境を作成する場合、慣習として .venv
のような名前を使うことがあります。しかし、単に python3 -m venv .venv
のようにして仮想環境を作成すると、プロンプトに表示される仮想環境名も (.venv)
になってしまって残念な感じになってしまいます。
~/t $ python3 -m venv .venv
~/t $ source .venv/bin/activate
(.venv) ~/t $
この仮想環境名を変更するためには、 python -m venv
コマンドの --prompt <name>
を使います。
~/t $ python3 -m venv --prompt hoge .venv
~/t $ source .venv/bin/activate
(hoge) ~/t $
Python 3.9 からは、この --prompt
オプションに '.' を指定できるようになりました。 --prompt .
を使うと、現在のディレクトリ名をプロンプトに利用するようになります。
~/t $ python3 -m venv --prompt . .venv
~/t $ source .venv/bin/activate
(t) ~/t $
私は、このオプションに加えて pip
を自動でアップデートする --upgrade-deps
オプションも使って、次のようなエイリアスを設定しています。
.bashrc
alias mkvenv='python3 -m venv --upgrade-deps --prompt . .venv'
alias activate='source .venv/bin/activate'
このエイリアスを使うと、次のように手軽に仮想環境を扱えます。(実際にはさらに direnv も組み合わせて activate の自動化も行っています。)
~/t $ mkvenv
~/t $ activate
(t) ~/t $ deactivate
~/t $
(追記) virtualenv も v20.10.0 から --prompt .
の挙動が venv と同じになっています。
Discussion