僕とコードとブルーハワイ

omega (@equal_001) の日記

virtualenvでPythonの開発環境をプロジェクト毎にわける

環境:Max OS X 10.9.5

 

開発をするとき、プロジェクト毎にPythonのバージョンや依存するライブラリを分けたいことがある。

そういうときは、virtualenvを使いましょう。

こやつです。

Virtualenv — virtualenv 13.0.3 documentation

 

 

インストール

pip を使えば一発で入ります。便利な世の中になりました。

$ pip istall virtualenv

※ 2015/06/20 現在、特に何もしていないとvirtualenv 12.0.7が自動的に入ります。

 

最新版のvirtualenvをインストールしたい場合は、Githubリポジトリにある最新プロジェクトのtarballを直接指定します。

$ pip install https://github.com/pypa/virtualenv/tarball/develop

 

もし任意のバージョン(古いやつとか)のものを使用したい場合は、PyPIでvirtualenvと検索すると過去のバージョンが沢山でてくるので、そこから好きなバージョンのダウンロードページへ行ってtar.gzのリンクアドレスをコピー、以下の用にダウンロード・解凍して使えるようにします。

$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz

$ tar xvfz virtualenv-X.X.tar.gz

$ cd virtualenv-X.X

python setup.py install

 

インストール時の注意点:

以下の環境でインストールすると、SSLを介さないでPyPIからダウンロードします。

・pip 1.3以下

・setuptools < 0.9.7の状態でeasy_installをする

まずはバージョンを確認したほうが良いです。

 

 

virtualenvを使ってみる

virtualenvを使いたいディレクトリへ移動して、virtualenvコマンドを叩きます。

すると、envというvmが勝手に作られます。

~ $ cd test_dir

test_dir $ virtualenv env

test_dir $ ls

env

 

さっそくsourceコマンドでenvに入るためのスクリプトを実行します。(このことをよくactivateする、という)

test_dir $ source env/bin/activate

(env):test_dir $

このようにactivateするとenv環境に入ります。さてここで pip install djangoしてみます。

(env):test_dir $ pip install django

 ~ 一生懸命Django君がインストールされる ~

pip list で ライブラリのリストを見れます。さっき入れたDjangoが入ってることを確認。

(env):test_dir $ pip list

You are using pip version 6.0.8, however version 7.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Django (1.8.2)
pip (6.0.8)
setuptools (12.0.5)

 

ここで、env環境に入った場合とそうでない場合の両方で $ pip list して、それぞれの環境で入っているライブラリが違うことを確認してみてください。

 

env環境を作成するとき、Pythonのバージョンを指定することもできます。

次の例では、env環境ではpython3をデフォルトで使いたい場合の設定手順です。

~ $ python -V

Python 2.7.9   # ローカル環境のpythonのバージョン

~ $ cd test_dir

test_dir $ which python3    # python3の場所を探す

/usr/local/bin/python3

test_dir $ virtualenv env --python /usr/local/bin/python3   # --python オプションで使用したいpythonのPATHを指定

test_dir $ ls

env

test_dir $ source env/bin/activate

(env):test_dir $ python -V   # PATHで指定したpythonをデフォルトで使用するようになっている

Python 3.4.2

 

env環境から抜けたいときは、deactivateします。

(env):test_dir $ deactivate

 

 

こんな感じで、プロジェクト毎にPythonのバージョンやライブラリをわけることができるので便利です。