Virtualenv: 一个Python环境管理工具virtualenv是一个python工具. 它可以创建一个独立的python环境. 这样做的好处是你的python程序运行在这个环境里, 不受其它的
python library的版本问题影响. 比如说你想用最新的Django 1.3开发新的项目, 但是现有的Pinax 0.7只支持到Django 1.1. 传统的做法是在环境变量 其实我对virtualenv一开始没什么兴趣. 为什么呢? 首先我认为virtualenv也不是完美的解决方案, 它只是一个以空间换时间的方法. 可能是受了ant/maven的影响, 我觉得那样更省事一些. 更主要的原因是我很懒, 又不肯学新的东西. 因为学新的东西是要时间的, 学了一样的新知识后还没怎么用更新的东西就又出来了. 这不是学了白学嘛. 所以我把这些工具分成两类. 一种是可以解决新的问题, 另一种是改进当前的解决方法. 我对前一种的态度是没碰到那类问题就不仔细学习, 了解一下就好. 对后一种就要小心一些, 因为这类方法往往有可能存在过度设计的问题, 也就是说理论上它有可能解决得更好一些, 但学习的时间成本更高, 复杂度也更高, 有可能会得不偿失. 所以我会先看看它是不是足够简单, 否则就不学. virtualenv充分利用了pip. 对于pip, 我以前读James Bennett的文章 "On packaging" 时就不大以为然. 虽然我一直特尊敬James, 他的博客曾是我学Django的最大帮助, 但这篇文章我觉得只是个人喜好. pip和setuptools相比带来的好处实在有限. 但是virtualenv比pip更进了一步. 它的定位相当于Java里的Maven 和最新的ant. 我以前对版本问题不是很在意, 因为我自己只是一个人写程序, 也一直用最新的程序版本. 但是最近的Django1.2出来以后出现了版本不兼容的问题, 而且我用了不少别人的库, 这些程序也出现了版本不兼容的问题. 我在开发机器上测试新的东西出现问题还能接受, 但是到了production环境上就不行了. 全面升级时总是麻烦事. 所以我觉得现在是到了用virtualenv的时候了. Installation要是你的Linux repository已经有了 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创建一个工作环境
|
|