Hatena::Groupfukuoka-py

uchikoshi22.py

 | 

2011-12-11

virtualenvの導入

07:43

複数の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のヴァージョンが入っている状態がこんな感じで、

f:id:uchikoshi22:20111211072324p:image:w360

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

f:id:uchikoshi22:20111211072322p:image:w360


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



Ubuntu10.04の時の注意点

Ubuntu10.04ではPython標準でないパッケージをdist-packagesにインストールしてしまいますが、virtualenv環境内ではsite-packagesにパッケージがインストールされます。virtualevn環境で--no-site-packagesなしで起動したのにグローバル環境にあるパッケージが使えない時は無理やり(?)シンボリックリンクでも貼ってdist-packages内を見に行けるようにしないといけません。

toenobutoenobu2011/12/11 15:52virtualenvWrapperって使ってますか?

uchikoshi22uchikoshi222011/12/15 15:57> toenobuさん
実はvirtualenv自体、自分自身ではまだ差し迫った必要性がなくて、とりあえずvirtualenvがどう動くのか知りたくてインストールしただけなのでvirtualenvWrapperはまだ入れてもないんですよ。

VishalVishal2012/02/20 22:46This article is a home run, pure and smiple!

etjtdbetjtdb2012/02/22 01:28utmmP9 , [url=http://esavrxokoepj.com/]esavrxokoepj[/url], [link=http://fkgnntntvfdh.com/]fkgnntntvfdh[/link], http://qtzxeokyesir.com/

 |