Tweet

環境は
- MacOS Sierra 10.12.3
- Python3.6.0
- virtualenv 15.1.0
virtualenvを使っているとpythonの仮想環境を簡易的に作れるので
ライブラリの追加などで大元の環境を汚さなくて済むし
世界的にはでファクトリスタンダード(らしい)が
参考
毎回terminal立ち上げるのにworkonしてるのも面倒なのでpythonの開発ディレクトリにcdするだけで起動する方法として
autoenvというのを試してみた
autoenvというのがある
Autoenv: Directory-based Environments
https://github.com/kennethreitz/autoenv#what-is-it
ディレクトリごとに.envで環境を構築できるスグレモノっぽい
早速いれてみる、githubにそれぞれ環境によって入れ方があってMacの場合は下記で簡単に入った
|
|
試してみる
最初だけなんか警告がでる(この.envははじめてだけど大丈夫かい?みたいな。.envを変更するたびに聞かれる)
が大丈夫なので y/N聞かれるからyでよい
で、試しに下記 .env を作ってみてみる
homeディレクトリにprojectというディレクトリを作成してその中に”echo ‘whoa’”と記載した.envを作成
すると、projectディレクトリにcdするとコンソール上に whoa
と出て来る
|
|
nestしたディレクトリに移動しても実行される
|
|
ちなみにnestされた場所から戻った場合でも起動するみたい
|
|
ただし毎回実行されてしまってそれはそれでめんどい
というか.envを置いたディレクトリ以降においておいたらそこから移動するたびに何度でも実行されてしまうっぽい
それはそれで毎回実行されすぎるのも困り者だな、なんか1回で済んでくれたらいいのだがということで
ぐぐってたら下記2つがヒット
Using autoenv with python virtualenvs | Rob Smith - Senior DevOps Engineer - Seattle, WA
python - autoenv executes even in subfolder - Stack Overflow
とりあえず、virtualenvの仮想環境に入ってる時は$VIRTUAL_ENV
というのが発動していて
それが発動しているか否かでworkonするかしないか判断するスクリプトになってるみたい
自分は、仮想環境の名前がcv
なので下記.envファイルを作ってprojectディレクトリに保存した
|
|
これでterminalを起動してprojectのpathまで移動した時に自動で発動するようになった!
pythonのバージョンを基本1種類しか使わないなら下記でも大丈夫
というか自分の場合は基本的にpython3しか使わないので、いつでもcv発動していてもいいのでは・・・
ということで.bash_profileにworkonコマンドを記載しておけばよい(例えばcvという環境だった場合下記)
|
|
これが良いかどうかはわからないのでまぁやっぱりautoenvを使うほうがいいのではとは思う
Tweet
