要在n多服务器端部署python的应用,虽然python本身是跨平台的,当时好多第三方的扩展却不一定都能做到各个版本兼容,即便是都是linux,在redhat系列和ubuntu系列之间来回导也是个很让人头痛的事.
找到这个virtualenv,整个的clone一个python环境,可以在这个虚出来的环境里面配置一番,然后整个打包发布,这样在其他linux版本上部署时就会非常简单,实在是部署python服务器端应用的必备! 过程记录如下:
首先到 http://pypi.python.org/pypi/virtualenv
下载,安装virtualenv,可以看到它是从workingenv和virtual-python继承而来的: """
virtualenv
is a successor to workingenv
, and an extension of virtual-python
.
"""
起作用的应该就virtualenv.py一个文件,把它考出来,放到当前目录,
,执行:
python virtualenv.py test --no-site-packages
test里面会产生一个bin目录和一个lib目录,bin里面有python,activate,easy_install,而且以后你要装django,django-admin.py也会放到这里,完全跟原来的python一样,(其实就是考过来然后设一下路径,不过还是很赞!),lib目录下有site-package,装的lib会放到这里来.
加了 --no-site-packages后就不会用原来的python里面的库,只用当前lib/site-packages里面新装的库!
执行:
. bin/activate
它会把原来的路径去掉,把当前环境的python路径设置好。你会注意到prompt变了,当前的目录名被放到了prompt里面去,提示你现在用的是新的python环境。
剩下的就是在这个虚拟python环境中安装配置你的服务应用,
装完后修改一下bin/activate脚本,让它自动把环境设置好,服务启动起来,又一个地方要修改:
找到设置VIRTUAL_ENV变亮的地方,改成如下:
export VIRTUAL_ENV=`pwd`
如果你不熟悉shell,那么要注意pwd两边的不是单引号'而是`
然后就可以打包带走了,到另一台server上,只要简单的解包,然后执行
. bin/activate
就一切ok了