よくある悩み
- 「Python で開発するけどローカル環境汚したくないんだよなー」
- 「Python コンテナ立てて VSCode でアタッチしてもいいけど拡張機能の管理がめんどいなー」
- 仁義なき
virtualenvvspipenvvsvenv派閥争い
そんなあなたに direnv
https://github.com/direnv/direnv
一言でいうと、ディレクトリ毎に環境を分けるもの
つまり何 ??
venv と組み合わせると、direnv を有効化したディレクトリに移動しただけで venv を activate することが可能
また、環境変数も同様に自動でセットすることが可能
使い方
インストール
Mac の場合は brew install direnv 、Windows は知らん
設定
~/.zshrc に追記
$EDITOR で指定するのは自分の好きなやつ
export EDITOR=/usr/local/bin/nvim
eval "$(direnv hook zsh)"
有効化 target_dir でやってみる
mkdir target_dir
cd target_dir
python -m venv venv
echo "source venv/bin/activate" > .envrc
direnv allow
-
direnv はディレクトリに移動した際に自動で
.envrcを読み込む -
.envrcの編集はdirenv editでやってもいいし、直接編集してからdirenv allowで有効かしてもいい -
export HOGE=hogeと記述しておくと、そのディレクトリ配下にいる間だけその環境変数が有効化される
設定完了!! 👌
これで target_dir に移動すると、勝手に venv が有効化するゾ!!