Python の virtualenv をためす

virtualenv は Python の仮想環境。Python のバージョンとかインストールされているパッケージの異なった環境を作ることができるらしいので、ちょっとやってみる。
参考にしたサイトは:
 cf. python開発環境の構築から作成したeggを別環境へインストールするまで
 cf. VIRTUALENV について ― 今日のPython

インストール

インストールは簡単。pipで一発。

^o^ > pip install virtualenv

なんか長々とメッセージが出て、インストール完了。

^o^ > pip list
distribute (0.6.36)
Jinja2 (2.7)
MarkupSafe (0.18)
virtualenv (1.10)

ちゃんとインストールされている。

仮想環境の作成

仮想環境の作成には、virtualenv コマンドを使う。–no-site-packages オプションは、余計なパッケージをインストールしないオプション。

^o^ > virtualenv --no-site-packages myenv
New python executable in myenv\Scripts\python.exe
Installing Setuptools...........................................................
................................................................................
................................................................................
.........................done.
Installing Pip..................................................................
................................................................................
................................................................................
................................................................................
.......................done.

–no-site-packages オプションを指定しても Setuptools と pip はインストールされるみたいだ。
で、今作った myevn に移動して、仮想環境をアクティベートする。

^o^ > cd myenv

^o^ > Scripts\activate
(myenv) ^o^ >

アクティベートするには(Windowsなので)Scriptsフォルダのactivateを実行する。仮想環境がアクディブになるとプロンプトに (myenv) と出るようだ。
インストールされているパッケージを見ると pip と setuptools だけになっている。

(myenv) ^o^ > pip list
pip (1.4)
setuptools (0.9.7)

仮想環境から出るには、(Windowsなので)Scriptsフォルダのdeactivateを実行する。

(myenv) ^o^ > Scripts\deactivate
^o^ >

仮想環境のフォルダ構成

^o^ > dir
 ドライブ C のボリューム ラベルは OS です
 ボリューム シリアル番号は FE2A-F7C6 です

 C:\Users\takatoh\Documents\w\myenv のディレクトリ

2013/08/03  15:08    <DIR>          .
2013/08/03  15:08    <DIR>          ..
2012/12/23  17:22    <DIR>          Include
2013/08/03  15:09    <DIR>          Lib
2013/08/03  15:09    <DIR>          Scripts
               0 個のファイル                   0 バイト
               5 個のディレクトリ  364,815,224,832 バイトの空き領域

Include、Lib、Scripts の3つのフォルダができている。Include にはCのヘッダファイルが入っている。Lib はたぶんライブラリ、Scripts は実行ファイルが入っていて、Python 自体もここに入っている。

仮想環境にパッケージをインストール

せっかくなので、ためしにやってみよう。まずはもう一度アクティベートしてから、pip でインストールする。

(myenv) ^o^ > pip install Jinja2
Downloading/unpacking Jinja2
  Downloading Jinja2-2.7.tar.gz (377kB): 377kB downloaded
  Running setup.py egg_info for package Jinja2

    warning: no files found matching '*' under directory 'custom_fixers'
    warning: no previously-included files matching '*' found under directory 'do
cs\_build'
    warning: no previously-included files matching '*.pyc' found under directory
 'jinja2'
    warning: no previously-included files matching '*.pyc' found under directory
 'docs'
    warning: no previously-included files matching '*.pyo' found under directory
 'jinja2'
    warning: no previously-included files matching '*.pyo' found under directory
 'docs'
Downloading/unpacking markupsafe (from Jinja2)
  Downloading MarkupSafe-0.18.tar.gz
  Running setup.py egg_info for package markupsafe

Installing collected packages: Jinja2, markupsafe
  Running setup.py install for Jinja2

    warning: no files found matching '*' under directory 'custom_fixers'
    warning: no previously-included files matching '*' found under directory 'do
cs\_build'
    warning: no previously-included files matching '*.pyc' found under directory
 'jinja2'
    warning: no previously-included files matching '*.pyc' found under directory
 'docs'
    warning: no previously-included files matching '*.pyo' found under directory
 'jinja2'
    warning: no previously-included files matching '*.pyo' found under directory
 'docs'
  Running setup.py install for markupsafe

    building 'markupsafe._speedups' extension
    ==========================================================================
    WARNING: The C extension could not be compiled, speedups are not enabled.
    Failure information, if any, is above.
    Retrying the build without the C extension now.


    ==========================================================================
    WARNING: The C extension could not be compiled, speedups are not enabled.
    Plain-Python installation succeeded.
    ==========================================================================
Successfully installed Jinja2 markupsafe
Cleaning up...
(myenv) ^o^ > pip list
Jinja2 (2.7)
MarkupSafe (0.18)
pip (1.4)
setuptools (0.9.7)

パッケージは、Lib\site-packagesの中にインストールされるようだ。

さて、あとは必要なパッケージをインストールしてスクリプトを書くだけだ。そのうち書いたスクリプトを.eggファイルにする方法も試してみたい。