クラウドプロダクト開発部の小本です。私のお気に入りツールdirenvを紹介します。direnvとは・・・シェルのcdをフックし、ディレクトリごとに環境変数を自動設定するツールpyenvなどを置き換えることができるツールPythonistaも、Rubyistも、Gopherも、みんな使って損はないツールdirenv以前の世界(pyenvはawesomeだった)Pythonには、プロジェクトそれぞれに専用の環境を作ってPythonのバージョンやライブラリを切り替えることができるツールがあります。virtualenvwrappperと進化し、その最終形態がpyenvです。pyenvはあらかじめディレクトリに環境を紐付けておくと、ディレクトリにcdしたとき、勝手に環境を切り替えてくれます。3.4.1これで「小1時間悩んだ挙句、別のPythonで実行していた事に気づき(ry」ということは無くなります。言って、革命的です、life-changingです。***env我々が使う言語はPythonだけではありません。Python専用です。どれもやることはほとんど同じです。管理すること事態がコストです。エレガントとは言えません。pythonコマンドの指す先を変える」ということです。そこで、direnvはディレクトリごとに環境変数を切り替えることで、***env群の機能を1つのツールで提供できるのです。direnvのインストールdirenvはGoで書かれていて、単一のバイナリファイルとして提供されています。~/bin/direnvその後、フックを追加します。~/.cshrc基本的な使い方direnvの基本的な動作は2つです。ディレクトリにcdしたとき、現在の環境変数を保存した上で、.envrcファイルを読み込むディレクトリを離れるとき、以前の環境変数を元に戻すディレクトリ固有の環境変数を指定するのが、.envrcファイルです。.envrcを編集するeditだけ覚えておけば十分でしょう。省略可能direnvは環境変数以外も扱える実は.envrcには任意のシェルスクリプトを書くことが出来ます。以下のようにすれば、ディレクトリに入るたびにSLが走り抜けます。slsldirenvは他にも追加のコマンドを用意しています。詳しくはdirenv-stdlib.1.mdをご覧ください。~/.direnvrcに自作コマンドを書くこともできます。pythonなどは~/.direnvrcへの追記が必須です。本番環境を誤って破壊したりするのも防げて便利です。execを省略できるようになります)。execを省略可能にする。pythonで、virtualenvを使った専用環境を作れます。指定バージョンのインタープリタを検索するコードは自分で~/.direnvrcに書かなくてはなりません。pytohnzを使う場合のコードです。GOPATH=~/gocodeなどとすることが多いようです。同じパッケージの異なるバージョンを同時にインストールできない変なことをすると、全プロジェクトが巻き添えになるどれが不要なパッケージか分からなくなるなどの問題があります。goで、カレントディレクトリをGOPATHにすることができます。PATH_addを使って、GOPATHに複数のディレクトリを追加します。.direnv/go/srcで依存パッケージを簡単におじゃんにできます。~/Document/direnv/common.shすればいいでしょう。.envrcはGitやMarcurial等のVCSの管理対象にはしない方がいいと思います。使いたい環境変数やインタープリタのパスなどは、開発者ごとに違う可能性があるからです(そもそもdirenvを使いたくない・使えないかもしれないですし)。まとめdirenvはGoで書かれた、Python・Ruby・Goでの開発を効率化するツールです。HDEでは製品開発にPython・Ruby・Goを(も)使っています。開発&ASPチームの大久保です。アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。