目次
- はじめに
- tl;dr
- 手順
- インストール
- bashへhookを設定する
- .envrcの作成
- エラーが出たら
- まとめ
はじめに
Pythonの使って開発するときはvenvを使うことが多いと思います。venvを使って仮想的に開発環境を分けることによって、相互の環境で利用するライブラリをごちゃまぜにしないためです。venvが便利な半面、仮想環境を使うタイミングであったり、切り替えるタイミングであったりで、source bin/activate
するのがめんどくさくなってきてしまいました。source bin/activate
を自動化出来ないものか考えているうちに、便利なツールに巡り会えたのでブログに書いておきます。
以前巡り合った便利ツールはこちら
tl;dr
- Go製のdirenvを使うよ
- これで
source bin/activate
を自動化できるよ
手順
インストール
MacならHomebrewを使ってbrew install direnv
コマンドでインストールできます。
bashへhookを設定する
~/.bashrc
へ、direnvを使うよという指示を与えておきます。
2行目以降は、仮想環境の名前を()付きで表示するために必要な設定です。
eval "$(direnv hook bash)" show_virtual_env() { if [ -n "$VIRTUAL_ENV" ]; then echo "($(basename $VIRTUAL_ENV))" fi } PS1='$(show_virtual_env)'$PS1
設定を反映させる
source ~/.bashrc
.envrcの作成
.envrcを作成する前に、エディターを設定しておきます
export EDITOR=vim
source bin/activate
している、ディレクトリに移動して
direnv edit .
を実行、vimが起動します。
source bin/activate
を記述して完成。
cdコマンドで.envrc
ファイルのあるディレクトリに移動すると、
無事、自動的に仮想環境に入れる!
エラーが出たら
direnv: error .envrc is blocked. Run
direnv allowto approve its content.
はエラーにある通り、direnv allow
を実行して、direnvの実行を許可しましょう。
まとめ
source bin/activate
を自動化することが出来た- 地味にめんどくさかったから嬉しい