LoginSignup
63
62

More than 5 years have passed since last update.

同一システム上でPython複数環境の構築

Last updated at Posted at 2015-07-02

Mac OSXには最初からPythonがインストールされていますが、同一システム上で、色んなシチュエーションでヴァージョンやパッケージを使い分けたいとなったときのやり方手順メモ。

  • 同一システム上で、複数ヴァージョンを使い分けたい。
  • プロジェクトごとにヴァージョン及びパッケージのセットを使い分けたい。
  • 使い分けたいが切り替えの手間を軽減したい。
  • 新しいパッケージやソフトを試す際に既存の環境を汚したくない。

といった要望をクリアすることを目標にします。Pythonにおけるヴァージョン管理システムは、pyenv、virtualenv、direnvなどがあります。評価できるほど経験がないのですが、pyenvにはvirtualenv機能のプラグインもあるので、pyenvで構築することにします。また個別にパッケージを管理するのも煩雑なのでAnacondaを利用することにします。

AnacondaはPythonの数値計算環境を構築するために様々なパッケージをまとめた無料のディストリビューションです。 インストールを行うことで、NumPy,SciPy,matplotlibはもちろん、機械学習ライブラリscikit-learn等のパッケージをインストールできます。
http://morimori2008.web.fc2.com/contents/PCprograming/python/pythonAnaconda.html

以下の構成を前提としています。
- OS: Mac OSX
- パッケージ管理システム : Homebrew
- Python自体のヴァージョン管理とパッケージ管理 : pyenv
- ライブラリパッケージ : Anaconda

Homebrewのインストール

Terminal.appを立ち上げて、以下のコマンドをコピペして実行します。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

以下Homebrewの機能を利用して、インストールなどしていきます。冒頭にbrewとあるコマンドがこの機能を利用したものです。

pyenvのインストール

Homebrewの仕組みを利用してpyenvをインストールします。

$ brew install pyenv

pyenv-virtualenvのインストール

Homebrewの仕組みを利用してpyenv-virtualenvをインストールします。

$ brew install pyenv-virtualenv

システムのシェルの起動スクリプトに、パスを通す

(bashの場合)bash_profileへpyenv関連のパスを通します。
viは操作がわかりづらいですが、Terminal.appから

$  open ~/.bash_profile 

と打つと、テキストエディタでbash_profileが開きますので、慣れた操作感でファイル編集ができます。以下のように記載します。

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

設定を反映させるため、Terminal.appを再起動させるか、以下のコマンドを実行します。

$ source ~/.bash_profile

pyenvでインストールできるヴァージョンの確認

Terminal.appにて以下のコマンドで一覧を表示します。

$ pyenv install -l

こんな感じでリストされます。

Available versions:
  2.1.3
  2.2.3
  ...
  ...

環境構築の手順

  1. 必要なヴァージョンのPythonをダウンロード
  2. pyenv virtualenvコマンドでインストールヴァージョンにバージョン指定識別子をつける
  3. 特定のディレクトリ配下とバージョン指定識別子を関連づける
  4. 追加で必要なパッケージのインストールはglobalかlocal(バージョン指定識別子を利用)を指定して行う。

必要なヴァージョンのPythonをダウンロード

Anaconda(Python version2系統)をインストールする例

$ pyenv install anaconda-2.1.0

Anaconda(Python version3系統)をインストールする例

$ pyenv install anaconda3-2.1.0

Python version2系統をインストールする例

$ pyenv install 2.7.9

Python version3系統をインストールする例

$ pyenv install 3.4.2

pyenv virtualenvコマンドでインストールヴァージョンにバージョン指定識別子をつける

こんな感じで指定します。バージョン番号は正確に指定する必要がありますが、バージョン指定識別子は任意の名称を自作してください。

$ pyenv virtualenv バージョン番号 バージョン指定識別子

anaconda3-2.1.0を使って、condaanalyse1というバージョン指定識別子をつける場合はこうなります。

$ pyenv virtualenv anaconda3-2.1.0 condaanalyse1

特定のディレクトリとバージョン指定識別子を関連づける

1.特定ディレクトリ配下へ移動

$ cd specific_prj

2.ディレクトリとバージョン指定識別子を関連づけます

$ pyenv local condaanalyse1

3.このディレクトリ配下であれば指定したヴァージョンのPythonが自動的に選択されます。

pyenvの主なコマンド

$ pyenv install -l //インストール可能なバージョン一覧を表示
$ pyenv install <バージョン番号> //インストール
$ pyenv uninstall <バージョン番号> //アンインストール

$ pyenv version //現在のバージョンを表示
$ pyenv versions //インストール済みバージョン一覧を表示

$ pyenv local <バージョン番号> //カレントディレクトリーでのバージョン切替
$ pyenv global <バージョン番号> //システム全体でのバージョン切替

Anacondaが持つヴァージョン管理システムとの使い分け

Anacondaにもヴァージョン管理システム(conda)があります。penvはAnacondaを含む同一システム全体上でのヴァージョン管理、condaはAnacondaが提供するパッケージ内での管理と、管理のレイヤーが異なるので適宜使い分けます。

63
62
1

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
63
62