virtualenvの導入

複数Pythonの環境で開発するために、Pythonではvirtualenvというパッケージが用意されています。

 

ただ、このvirtualenv、ちょこっと調べた程度では私には今一理解できなかったので、環境を導入するのと同時に、今まで私がやっていた原始的なPythonのバージョンの使い分けとの違いをもう一度整理してみたところ、私自身の大きな勘違いに気が付きました。

virtualenvはPythonのヴァージョン使い分け環境ではない。

これまでずっとvirtualenvを必要と感じなかったのも、こんな勘違いからでした。

 

python2.6を使いたければ、

pythonとたたけばいいし、

python2.5ならpython2.5、

python2.7ならpython2.7、

python3.2ならpython3.2、

で別に問題ない、と。

 

 

virtualenv環境を使うともう少しだけ広い使い方ができます。

(正直、導入して実際に色々検証してみるまで理解できなかった情弱です。。。)

virtualenvを使うことで、こんな使い方を一つのOS上で切り替えて使うことができます。

  • 通常通り、pipやaptで入れたパッケージ全てが動くグローバル環境
  • python2.6 + Django1.1だけが動く仮想環境
  • python2.6 + Django0.9 + mysql-pythonだけが動く仮想環境
  • python2.5 + Django1.1だけが動く仮想環境
  • python2.5 + Django0.9 + mysql-pythonだけが動く仮想環境

などなど。。。

 

◎つまり、

virtualenvを使わず、複数Pythonのヴァージョンが入っている状態がこんな感じで、

20111211072324

virtualenvを使うと、さらにそれぞれのPythonのヴァージョンで、(オプション指定によって)virtualenvを使わないグローバル環境で導入済みのパッケージを使ったり、全く使わずvirtualenv環境の中でのみ別にパッケージが導入してグローバル環境に依存しないPythonを導入した状態で開発ができるようになります。

20111211072322

 

なかなか言葉にする説明しづらくて、自分でも導入から仮想環境の構築をして始めて理解できたので、そのうちハンズオンなどで説明したいと思います。