Virtualenv 環境からサブシェルを作って deactivate すると環境変数がおかしくなる問題の解決方法

Python の個別の環境を作る Virtualenv を Pythonz と組み合わせて使っているけど、tmux と組み合わせて使った時になんかおかしいなーと思っていた。

Virtualenv を activate したシェルから tmux を立ち上げると、tmux の中のシェルはサブシェルになる(と思ってるけど違うかもしれない)。

virtualenv は activate 時に deactivate が呼ばれるんだけど、うまく deactivate できなくなっていておかしくなる。これは、activate 前の PATH をシェル変数に保存しているんだけど、そのシェル変数がサブシェルに引き継がれないことが問題。これをサブシェルに引き継ぐためには export して環境変数にしておけば良い。ということで、activate ファイルを書き換えて環境変数として export されるようにしたところ解決した。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です