参考書などを読みながら、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
(ENV) [user scrapy]$ python -V Python 2.7.5
ENVの仮想環境を新たに作った時点では、初期段階のパッケージしか入っていません。
以下のコマンドで不要なパッケージが入っていないことを確認してみましょう。
いままでの環境と完全に切り分けられています。
(ENV) [user scrapy]$ pip freeze
この仮想環境を停止したい時は以下のコマンドで停止しましょう。
(ENV) [user scrapy]$ deactivate
構築した仮想環境が不要になった場合は
$ rm -r ENV
で、ENVディレクトリを消去するだけです。
簡単に環境の切り替えができ、プロジェクトごとのパッケージ管理もしやすいです。
うまくいくかわからないチャレンジングなプロジェクトをはじめたい時にも、現在の環境を汚さずにパッケージをバンバンインストールできる点も利点です。
初心者の方にこそ、virtualenvを試していただきたいです。