よくある悩み
- 「Python で開発するけどローカル環境汚したくないんだよなー」
- 「Python コンテナ立てて VSCode でアタッチしてもいいけど拡張機能の管理がめんどいなー」
- 仁義なき
virtualenv
vspipenv
vsvenv
派閥争い
そんなあなたに 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 が有効化するゾ!!