首页 > 代码库 > 点滴记录——CentOS 6.4中使用virtualenv安装swift

点滴记录——CentOS 6.4中使用virtualenv安装swift

转载请说明出处:http://blog.csdn.net/cywosp/article/details/42150141


简述
     在开发过程中,经常需要使用各种第三方库,而且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用户权限安装

1. 先安装virtualenvwrapper来管理虚拟环境
  easy_install virtualenvwrapper
  # 如果没有easy_install,请先安装
  关于virtualenvwrapper的使用
列出虚拟环境列表
workon

也可以使用
lsvirtualenv

新建虚拟环境
mkvirtualenv [虚拟环境名称]

启动/切换虚拟环境
workon [虚拟环境名称]

删除虚拟环境
rmvirtualenv [虚拟环境名称]

离开虚拟环境
deactivate

2.在~/.bashrc中添加行:source /usr/bin/virtualenvwrapper.sh
     source  ~/.bashrc
     #这一步也可省略,加在这里是为了以后操作方便,不用每次都执行source /usr/bin/virtualenvwrapper.sh

3. 创建安装Swift的虚拟环境
    mkvirtualenv Swift
    # Swift目录将会在~/.virtualenvs中,其目录结构如下:.
├── 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.git
cd swift
pip install -r requirements.txt
python setup.py install --record=file.txt
7. 配置Swift
    swift的配置跟正常安装配置是一样的,因此在此省略

8. 其他
     启动swift的时候一定要切换到Swift虚拟环境中,workeon 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

点滴记录——CentOS 6.4中使用virtualenv安装swift