最近の機械学習の流行もあってかPython環境を整える系の記事がいっぱい出回ってて「コイツラまた環境構築してるよ・・・」なんて揶揄されてたりするけど、調べてみると色々な方法があるようで、なるほど確かに人によって状況によって最適な手段は変わってくるのだろうし初心者が躓きかねない気もする。
(前職のPerlで四苦八苦したところだけど、)LLのランタイム切り替えやパッケージ管理はちゃんと把握しないで使うとしっちゃかめっちゃかになってしまうので、自分なりのやり方を記録しておこうと思う。
anyenvの導入
複数のLLを使う身としては個別に*env
を導入するよりも、統合的に扱えるanyenvを導入する方向で。
$ git clone https://github.com/riywo/anyenv ~/.anyenv $ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile $ exec $SHELL -l $ anyenv anyenv Usage: anyenv <command> [<args>] Some useful anyenv commands are: commands List all available anyenv commands local Show the local application-specific Any version global Show the global Any version install Install a **env uninstall Uninstall a specific **anv version Show the current Any version and its origin versions List all Any versions available to **env See `anyenv help <command>' for information on a specific command. For full documentation, see: https://github.com/riywo/anyenv#readme
pyenvの導入
pythonランタイムのバージョン管理のためにpyenvを導入する。perlでいうところのplenv
にあたるものだろう。
$ anyenv install pyenv $ exec $SHELL -l $ pyenv -v pyenv 1.1.3-26-g09bc868
virtualenvの導入
同一バージョンのランタイム内で異なるパッケージ環境を管理するためにvirtualenvを導入する。専用のパッケージ環境を扱うというニュアンスでいえばperlのCartonと近い気もするけど、こっちはプロジェクト単位というわけではないあたりが「学習環境」の管理としては使いまわしやすくてやりやすいように思う。
anyenvによってpyenvを導入したので、ググってすぐに引っかかる情報なんかとディレクトリが違うことに注意が必要。
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.anyenv/envs/pyenv/plugins/pyenv-virtualenv $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile $ exec $SHELL -l
作業ディレクトリの作成
※予めxcode周りのインストール必要そう
$ xcode-select --install
そんなこんなでpython 3.6.2を入れてみる。
$ pyenv install 3.6.2
3.6.2を用いるpylearn
という名前の環境を定義する。
$ pyenv virtualenv 3.6.2 pylearn
適当に作業ディレクトリを作成して移動した上で、そのディレクトリの環境としてpylearn
を設定する。
$ mkdir -p ~/src/pylearn $ cd ~/src/pylearn $ pyenv local pylearn (pylearn) $ python --version Python 3.6.2
こうすることで、作業ディレクトリ内ではpylearn
環境としてpythonを扱うことができる。
ちなみにディレクトリを移動すると元のpythonに戻る。
$ cd ~/ $ python --version Python 2.7.9
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
Docker推しの立場としてはよもや全てコンテナ上で実行すれば良いんじゃないかという気持ちもあるけど、まあ一旦は保守的な形で。