转载请说明出处:http://blog.csdn.net/cywosp/article/details/42150141
简述
在开发过程中,经常需要使用各种第三方库,而且python又提供了pip,easy_install等工具来简化库的安装,所以很容易就会在系统python的site-packages目录中装满各种各样的库,但是这样在下面几种情况下会有问题:
这时候我们就需要一个我们可以自己创建python环境的工具,它要满足如下条件:
在开发过程中,经常需要使用各种第三方库,而且python又提供了pip,easy_install等工具来简化库的安装,所以很容易就会在系统python的site-packages目录中装满各种各样的库,但是这样在下面几种情况下会有问题:
1.没有site-packages目录的写权限,比如共享主机解决
2.不同项目依赖同一个库的不同版本,而这两个版本又不向下兼容
3.在linux下更新系统时,自动更新某些依赖库
这时候我们就需要一个我们可以自己创建python环境的工具,它要满足如下条件:
1.我们可以指定环境的位置,这样就可以将其安装在自己有权限的目录
2.可以创建多个环境,这样不同项目可以使用不同环境,即使依赖同一个库的不同版本也不会有影响
3.系统自动更新时,系统python的site-packages中库的更新不会对自己项目造成影响
virtualenv就是这样一个工具,它可以在指定位置创建一个拥有独立安装目录的python环境,该隔离环境不会与其他virtualenv环境共享模块。它的具体用法可以参考https://virtualenv-chinese-docs.readthedocs.org/en/latest/,使用virtualenv来创建独立的环境还有一个好处,它可以和pip结合快速创建项目环境。
# 导出当前环境下的所有第三方库
pip freeze > requirements.txt
# 在新环境下安装所有文件内的第三方库
pip install -r requirements.txt
创建虚拟环境及安装Swift
# 以root用户权限安装,并且/etc/swift/中的配置文件配置的user为root,如果user是swift用户,那么在安装完之后,启动swift的所有进程极有可能会遇到相关模块找不到的情况。默认情况下mkvirtualenv创建隔离环境会放在~/.virtualenvs中,后面所安装的所有python相关的软件包都会在该目录下,如果使用root安装,软件包会放在/root/.virtualenvs下,这样其他普通用户就会无法访问到。
1. 先安装
virtualenvwrapper来管理虚拟环境
easy_install virtualenvwrapper
# 如果没有easy_install,请先安装
关于
virtualenvwrapper
的使用列出虚拟环境列表
workon
也可以使用
lsvirtualenv
新建虚拟环境
mkvirtualenv [虚拟环境名称]
启动/切换虚拟环境
workon [虚拟环境名称]
删除虚拟环境
rmvirtualenv [虚拟环境名称]
离开虚拟环境
deactivate
2.在~/.bashrc中添加行:source /usr/bin/virtualenvwrapper.sh
export WORKON_HOME=/opt/OpenStack #将virtualenv的默认工作路径更改为/opt/OpenStack
source
source
~/.bashrc
#这一步也可省略,加在这里是为了以后操作方便,不用每次都执行
source /usr/bin/virtualenvwrapper.sh
3. 创建安装Swift的虚拟环境
cd /opt/OpenStack/
mkvirtualenv /opt/OpenStack/Swift --no-site-packages
export WORKON_HOME=/opt/OpenStack
source /usr/bin/virtualenvwrapper.sh
mkdir /opt/OpenStack/Swift
source /usr/bin/virtualenvwrapper.sh
cd /opt/OpenStack/
mkvirtualenv /opt/OpenStack/Swift --no-site-packages
# Swift目录将会在/opt/OpenStack/Swift中,其目录结构如下:.
├── bin
├── include
├── lib
└── lib64 -> lib
4.安装相关依赖
yum update
yum install curl gcc memcached rsync sqlite xfsprogs git-core \
libffi-devel xinetd python-devel python-paste-deploy python-dns
5. 切换到Swift环境中workon Swift,然后安装python相关文件包
easy_install pip
pip install setuptools coverage cffi simplejson xattr eventlet greenlet netifaces mock pbr
6. 下载swift源码并安装
git clone https://github.com/openstack/swift.gitcd swiftpip install -r requirements.txtpython setup.py install --record=file.txt
7. 配置Swift
swift的配置跟正常安装配置是一样的,因此在此省略
8. 其他
启动swift的时候一定要切换到Swift虚拟环境中,workon Swift
对于python 2.6版本Swift 2.2.1之后的版本出现了一个小问题,详情:https://bugs.launchpad.net/swift/+bug/1403430
参考:
[1]. http://www.iitshare.com/virtualenv-isolate-python-env.html
[2]. https://github.com/lzjun567/note/blob/master/note/python/virtualenv.md