Virtualenv: 一個Python環(huán)境管理工具virtualenv是一個python工具. 它可以創(chuàng)建一個獨立的python環(huán)境. 這樣做的好處是你的python程序運行在這個環(huán)境里, 不受其它的
python library的版本問題影響. 比如說你想用最新的Django 1.3開發(fā)新的項目, 但是現(xiàn)有的Pinax 0.7只支持到Django 1.1. 傳統(tǒng)的做法是在環(huán)境變量 其實我對virtualenv一開始沒什么興趣. 為什么呢? 首先我認為virtualenv也不是完美的解決方案, 它只是一個以空間換時間的方法. 可能是受了ant/maven的影響, 我覺得那樣更省事一些. 更主要的原因是我很懶, 又不肯學(xué)新的東西. 因為學(xué)新的東西是要時間的, 學(xué)了一樣的新知識后還沒怎么用更新的東西就又出來了. 這不是學(xué)了白學(xué)嘛. 所以我把這些工具分成兩類. 一種是可以解決新的問題, 另一種是改進當前的解決方法. 我對前一種的態(tài)度是沒碰到那類問題就不仔細學(xué)習(xí), 了解一下就好. 對后一種就要小心一些, 因為這類方法往往有可能存在過度設(shè)計的問題, 也就是說理論上它有可能解決得更好一些, 但學(xué)習(xí)的時間成本更高, 復(fù)雜度也更高, 有可能會得不償失. 所以我會先看看它是不是足夠簡單, 否則就不學(xué). virtualenv充分利用了pip. 對于pip, 我以前讀James Bennett的文章 "On packaging" 時就不大以為然. 雖然我一直特尊敬James, 他的博客曾是我學(xué)Django的最大幫助, 但這篇文章我覺得只是個人喜好. pip和setuptools相比帶來的好處實在有限. 但是virtualenv比pip更進了一步. 它的定位相當于Java里的Maven 和最新的ant. 我以前對版本問題不是很在意, 因為我自己只是一個人寫程序, 也一直用最新的程序版本. 但是最近的Django1.2出來以后出現(xiàn)了版本不兼容的問題, 而且我用了不少別人的庫, 這些程序也出現(xiàn)了版本不兼容的問題. 我在開發(fā)機器上測試新的東西出現(xiàn)問題還能接受, 但是到了production環(huán)境上就不行了. 全面升級時總是麻煩事. 所以我覺得現(xiàn)在是到了用virtualenv的時候了. Installation要是你的Linux repository已經(jīng)有了 sudo aptitude install python-virtualenv 要是沒有, 如Ubuntu 8.04, sudo easy_install virtualenv Installing virtualenv script to /usr/bin Installed /usr/lib/python2.5/site-packages/virtualenv-1.5.1-py2.5.egg 如果在share hosting上, 要麻煩一些: 1. #need to setup python in your own folder under your home folder, mkdir -p python2.6/{bin,include,share,lib/python2.6/site-packages} 2. # get virtualenv package wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.6.4.tar.gz tar zxvf virtualenv-1.6.4.tar.gz cd virtualenv-1.6.4 /usr/local/bin/python2.6 setup.py install \ --prefix=/home/your_user_name/python2.6/ Setup創(chuàng)建一個工作環(huán)境
|
|