LoginSignup
4
4

More than 5 years have passed since last update.

pythonz+direnvでMacのPython開発環境を構築してみた

Posted at

はじめに

この記事はHamee Advent Calendar 2015の17日目の記事です。

主に自分用の作業メモとしてMacpythonzdirenvを使ってPythonの開発環境を構築する手順をまとめてみました。

ここでは、例としてディレクトリ~/dev/myprojectでバージョン3.5.0Pythonを使用するための設定をしていきます。また、bashで環境構築した手順について説明していますので、必要に応じてご自身が使用しているシェルに置き換えてお読みください。

pythonzとは

色々なバージョンのPythonをユーザのホームディレクトリにインストールできるツールです。詳細はこちらをご覧ください。

direnvとは

ディレクトリごとに環境を切り替えるためのツールです。詳細はこちらをご覧ください。

下準備

pythonzdirenvを使用するために必要なツール・ライブラリ等がいくつか存在するので、事前に以下のインストールを済ませておいてください。

コマンドラインツール

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をインストールしてください。

pythonzdirenvのインストール

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

インストールが完了したら、以下のコマンドを実行して~/.bashrchookを追加します。(bash以外のシェルを使用している場合、適宜読み替えてください。)

$ echo 'export EDITOR={使用するエディタ}' >> ~/.bashrc
$ echo 'eval "$(direnv hook bash)"' >> ~/.bashrc

これらの設定を有効にするために

$ source ~/.bashrc

を実行してください。また、もし~/.bash_profileというファイルが存在して
いない場合は、以下の内容の~/.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.0Pythonをインストールするには

$ 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.0Pythonをこのディレクトリで使用するには、以下の設定を記述してください。(この設定は~/dev/myproject/.envrcに保存されます。)

~/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.0Pythonを使用するための設定が完了しました。今後は、このディレクトリに移動すればバージョン3.5.0Pythonが使用できます。

ディレクトリごとに使用される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.0Pythonが使用されていない(システムのPythonが使用されている)ことが確認できるかと思います。

まとめ

pythonzdirenvを使用して、任意のディレクトリ(~/dev/myproject)で任意のバージョン(3.5.0)のPythonを使用するための設定手順についてまとめました。

このような記事を書くのは初めてなので、至らない点は多々あったかと思います。ですが、この記事が少しでも 社内のPython使いの人口を増やすきっかけになれば 自分以外の誰のお役に立てば幸いです。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4