はじめに
この記事はHamee Advent Calendar 2015の17日目の記事です。
主に自分用の作業メモとしてMac
でpythonz
とdirenv
を使ってPython
の開発環境を構築する手順をまとめてみました。
ここでは、例としてディレクトリ~/dev/myproject
でバージョン3.5.0
のPython
を使用するための設定をしていきます。また、bash
で環境構築した手順について説明していますので、必要に応じてご自身が使用しているシェルに置き換えてお読みください。
pythonz
とは
色々なバージョンのPython
をユーザのホームディレクトリにインストールできるツールです。詳細はこちらをご覧ください。
direnv
とは
ディレクトリごとに環境を切り替えるためのツールです。詳細はこちらをご覧ください。
下準備
pythonz
とdirenv
を使用するために必要なツール・ライブラリ等がいくつか存在するので、事前に以下のインストールを済ませておいてください。
コマンドラインツール
pythonz
を使用するためにコマンドラインツールが必要です。
$ xcode-select --install
を実行し、[インストール]を選択してインストールしてください。
homebrew
direnv
のインストールにhomebrew
を使用するので、
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
を実行してhomebrew
をインストールしてください。
virtualenv
direnv
を実行するのにvirtualenv
というPython
のモジュールが必要なので、
$ sudo pip install virtualenv
を実行してvirtualenv
をインストールしてください。もしpip
が使用できない場合は、先に
$ sudo easy_install pip
を実行してpip
をインストールしてください。
pythonz
とdirenv
のインストール
pythonz
のインストール
$ curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
を実行してpythonz
をインストールします。(~/.pythonz
にインストールされます。)
次に、以下のコマンドを実行して~/.bashrc
に必要な設定を追記します。
$ echo '[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc' >> ~/.bashrc
direnv
のインストール
homebrew
を使ってdirenv
をインストールします。direnv
をインストールするには以下のコマンドを実行します。
$ brew install direnv
インストールが完了したら、以下のコマンドを実行して~/.bashrc
にhook
を追加します。(bash
以外のシェルを使用している場合、適宜読み替えてください。)
$ echo 'export EDITOR={使用するエディタ}' >> ~/.bashrc
$ echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
これらの設定を有効にするために
$ source ~/.bashrc
を実行してください。また、もし~/.bash_profile
というファイルが存在して
いない場合は、以下の内容の~/.bash_profile
を作成してください。
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
環境構築
pythonz
で任意のバージョンのPython
をインストール
$ pythonz list --all
を実行すると、pythonz
でインストールできるPython
のバージョンの一覧が以下のように表示されます。
# Available Python versions
# cpython:
3.1.3
3.1.2
3.1.5
3.1.4
2.4.3
...
任意のバージョンのPython
をインストールするには
$ pythonz install {インストールしたいバージョン}
を実行してください。バージョン3.5.0
のPython
をインストールするには
$ pythonz install 3.5.0
を実行します。(~/.pythonz/pythons/CPython-3.5.0
にインストールされます。)
ちなみに、pythonz
を使用してインストールされたPython
のバージョン一覧は
$ pythonz list
を実行することで確認できます。(以下のように表示されます。)
# Installed Python versions
CPython-3.5.0
その他の使い方については
$ pythonz help
を実行して確認してみてください。
direnv
で環境変数の設定
まず、以下のコマンドを実行してください。
$ direnv edit ~/dev/myproject
するとexport EDITOR={使用するエディタ}
で指定したエディタが起動するので、環境変数の設定を書き込みます。先ほどpythonz
でインストールしたバージョン3.5.0
のPython
をこのディレクトリで使用するには、以下の設定を記述してください。(この設定は~/dev/myproject/.envrc
に保存されます。)
layout python $(pythonz locate 3.5.0)
設定が完了したら~/dev/myproject
ディレクトリに移動します。すると、環境の初期化が行われるかと思います。もし初期化されずに
direnv: error .envrc is blocked. Run `direnv allow` to approve its content.
のようなメッセージが出力されてしまった場合は
$ direnv allow
を実行することで初期化されるかと思います。
以上で~/dev/myproject
でバージョン3.5.0
のPython
を使用するための設定が完了しました。今後は、このディレクトリに移動すればバージョン3.5.0
のPython
が使用できます。
ディレクトリごとに使用されるPython
のバージョンを確認
本当に~/dev/myproject
でバージョン3.5.0のPython
が使用できるかを確認してみます。
まずは現在のディレクトリ(~/dev/myproject
)で
$ python --version
を実行します。すると
Python 3.5.0
と表示されるかと思います。次に、この設定が現在のディレクトリでのみ有効かどうかを確かめるため他のディレクトリに移動して
$ python --version
を実行してみます。今度は
Python 2.7.10
のように表示され、~/dev/myproject
以外のディレクトリではバージョン3.5.0
のPython
が使用されていない(システムのPython
が使用されている)ことが確認できるかと思います。
まとめ
pythonz
とdirenv
を使用して、任意のディレクトリ(~/dev/myproject
)で任意のバージョン(3.5.0
)のPython
を使用するための設定手順についてまとめました。
このような記事を書くのは初めてなので、至らない点は多々あったかと思います。ですが、この記事が少しでも 社内のPython使いの人口を増やすきっかけになれば 自分以外の誰のお役に立てば幸いです。