🫠

python venvのVIRTUAL_ENV環境変数はなんなのか

に公開

source .venv/bin/activateとかでセットされているけれどpythonの挙動に影響がない気がして不思議に思った。

本質情報リンク

https://peps.python.org/pep-0405/

定義なさそう

別にPEP 405で定義されている気配がなく、これは伝統的にそうなっている感がある。
他のツールに通知するのにはこれが必要。shellのprompt変えるとか。

pythonの挙動はどうなってるのか

pyvenv.cfgを探す

現在のディレクトリと、1階層上を探す。
シンボリックリンクだった場合は、シンボリックリンクを起点を探す。
.venv/bin/activateで大事なことは.venv/binにパスを通すこと。
.venv/pyvenv.cfgがある

Discussion