5Python5(ゴーパイソンゴー)

プログラミングに挫折したわたしが一流のPython使いになるまでの備忘録

virtualenvのすすめ

参考書などを読みながら、Pythonのプログラミングを進めていくと
知らぬ間によくわからないパッケージがインストールしてあったりします。
プロジェクトごとにパッケージを管理したいな~なんて思うこともあるでしょう。
また現在はPython3以上でプロジェクトを立ち上げることが一般的ですが、
Python2.7など、特定のバージョンでないと動かないパッケージがあったりします。
1台のサーバー内で、プロジェクト毎にPythonバージョンを切り分けられたらいいですよね。

そんなとき、オススメしたいのが「virtualenv」です。
virtualenvを利用すると、プロジェクト毎(ディレクトリ毎)にPyhtonの環境管理が構築できます。

はじめにpipを利用してvirtualenvをインストールしましょう。

$ pip install virtualenv

インストールが完了したら、プロジェクトのディレクトリを作成しましょう
今回はScrapyのプロジェクトを作ることを仮定して進めてみます。
Pythonバージョンは2.7を利用します。

scrapy用のディレクトリを作成

$ mkdir scrapy

ディレクトリ内に移動

$ cd scrapy

Python2.7 の環境を、ENV という名前で作成します。
ENVの名前は管理しやすい任意の文字列で構いません。

$ virtualenv -p python2.7 ENV

ENVのディレクトリが作成されたか確認してみましょう。

ls -al

こんな感じでENVディレクトリが作られていればOKです。

drwxrwxr-x 3 user user    4096 Sep  2 04:24 .
drwxrwxr-x 5 user user    4096 Sep  2 03:28 ..
drwxrwxr-x 5 user user    4096 Sep  2 04:23 ENV

環境が構築できたので、このENVの環境を有効化しましょう

$ source ENV/bin/activate

ENV環境に切り替わると、環境名が()の中に表示されます。

(ENV) [user scrapy]$

ENV環境を有効化した状態でwhichするとPythonのパスが変わっています。

(ENV) [user scrapy]$ which python
~/Python/scrapy/ENV/bin/python

念の為Pythonバージョンも確認しておきましょう

(ENV) [user scrapy]$ python -V
Python 2.7.5

ENVの仮想環境を新たに作った時点では、初期段階のパッケージしか入っていません。
以下のコマンドで不要なパッケージが入っていないことを確認してみましょう。
いままでの環境と完全に切り分けられています。

(ENV) [user scrapy]$ pip freeze

この仮想環境を停止したい時は以下のコマンドで停止しましょう。

(ENV) [user scrapy]$ deactivate

構築した仮想環境が不要になった場合は

$ rm -r ENV

で、ENVディレクトリを消去するだけです。


簡単に環境の切り替えができ、プロジェクトごとのパッケージ管理もしやすいです。
うまくいくかわからないチャレンジングなプロジェクトをはじめたい時にも、現在の環境を汚さずにパッケージをバンバンインストールできる点も利点です。
初心者の方にこそ、virtualenvを試していただきたいです。