您的位置:首页 > 编程语言 > Python开发

使用virtualenv创建独立的Python环境

2016-08-27 14:32 666 查看

为什么要使用virtualenv?

virtualenv是 python的沙盒环境,

主要解决以下问题:

隔离项目之间的第三方包依赖,如A项目依赖scrapy1.x+高版本(支持python3),B项目依赖scrapy低版本,有些项目还有对django版本的要求等。

为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可,不需要在服务器上再折腾一翻

准备条件

安装devtoolset

# yum groupinstall “Development tools”


安装编译Python需要的包

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel


安装多版本python

centos默认安装了python2.6,实际开发要使用python2.7.x和python3.3+

安装python2.7.5

# wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2 # tar jxvf Python-2.7.5.tar.bz2
# cd Python-2.7.5
# ./configure  --prefix=/usr/local/python2.7.5
# make && make altinstall


设置软链接:

ln -s /usr/local/python2.7.5/bin/python /usr/bin/python2.7


查看是否安装成功:

# python2.7 -V
Python 2.7.5


安装python3.5.0

# wget  https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz # tar -zxvf Python-3.5.0.tgz
# cd Python-3.5.0
# ./configure --prefix=/usr/local/python3.5.0
# make&&make install


安装成功后,默认也安装了pip:



设置软链接:

# ln -s /usr/local/python3.5.0/bin/python3.5 /usr/bin/python3.5
# ln -s /usr/local/python3.5.0/bin/pip3.5 /usr/bin/pip


查看是否安装成功:

# python3.5 -V
Python 3.5.0
# pip -V
pip 7.1.2 from /usr/local/python3.5.0/lib/python3.5/site-packages (python 3.5)


使用virtualenv

安装 virtualenv

# pip install virtualenv


设置软链接:

ln -s /usr/local/python3.5.0/bin/virtualenv /usr/bin/virtualenv


创建虚拟环境:

语法:

virtualenv [OPTIONS] DEST_DIR


常用[OPTIONS]选项:

–no-site-packages :令隔离环境不能访问系统全局的site-packages目录(默认)。

–system-site-packages :令隔离环境可以访问系统全局的site-packages目录

–python:指定使用的python解释器位置,使用指定的解释器创建新的隔离环境,默认使用的是当前系统安装(/usr/bin/python)的python解析器。

DEST_DIR:虚拟环境所在目录

# virtualenv --python=/usr/bin/python2.7  --no-site-packages /root/py_vienv/


安装过程:



如上图所示,virtualenv在创建虚拟环境的时候默认安装了pip

启动虚拟环境

# cd py_vienv
# source ./bin/activate


此时虚拟环境已经启动完成,注意此时命令行会多一个(ENV),ENV为虚拟环境名称,接下来所有模块都只会安装到该目录中去:



退出虚拟环境

# deactivate


使用virtualenvwrapper

virtualenvwrapper是virtualenv的扩展工具,可以将所有虚拟环境整合在一个目录下,可以方便的创建、删除、复制、切换不同的虚拟环境

安装virtualenvwrapper

# pip install virtualenvwrapper


需要进行一些设置,virtualenvwrapper 才能使用

# mkdir $HOME/.virtualenvs


vi ~/.bashrc,新增如下两行

# 设置virtualenv工作目录. 设置放在用户跟目录下
export WORKON_HOME=$HOME/.virtualenvs
export PIP_VIRTUALENV_BASE=$WORKON_HOME
#设置每一个虚拟环境都使用单独的库文件
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
#使用的python解释器位置
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.5
#virtualenvwrapper脚本位置
source /usr/local/python3.5.0/bin/virtualenvwrapper.sh


运行:

# source ~/.bashrc


此时virtualenvwrapper 就可以使用了

创建虚拟环境

# mkvirtualenv [OPTIONS]  自定义虚拟环境名称
# mkvirtualenv [OPTIONS]  自定义虚拟环境名称




注:[OPTIONS]选项可以使用上面virtualenv所支持的选项

例如:

创建python2.7的环境

# mkvirtualenv  --python=/usr/bin/python2.7  python2.7-env01


创建完成后会自动进入所创建的环境当中:



安装scrapy:

# pip install Scrapy==1.0.0


查看可使用的虚拟环境

# workon [虚拟环境名称]


切换虚拟环境

语法:workon [虚拟环境名称]

查看虚拟环境里安装了哪些包

(env01) [root@vagrant-centos65 .virtualenvs]# lssitepackages


进入虚拟环境的目录

语法:cdvirtualenv [子目录]

(env02) [root@vagrant-centos65 /]# cdvirtualenv  /
(env02) [root@vagrant-centos65 env02]# pwd
/root/.virtualenvs/env02


进入包目录

语法:cdsitepackages

(env02) [root@vagrant-centos65 env02]# cdsitepackages
(env02) [root@vagrant-centos65 site-packages]# pwd
/root/.virtualenvs/env02/lib/python2.7/site-packages
(env02) [root@vagrant-centos65 site-packages]# cdsitepackages pip
(env02) [root@vagrant-centos65 pip]# pwd
/root/.virtualenvs/env02/lib/python2.7/site-packages/pip


复制虚拟环境

语法:cpvirtualenv [source] [dest]

[root@vagrant-centos65 .virtualenvs]# cpvirtualenv  env02 env03
Copying env02 as env03...
(env03) [root@vagrant-centos65 .virtualenvs]# workon
env01
env02
env03


删除虚拟环境

语法:rmvirtualenv [虚拟环境名称]

[root@vagrant-centos65 .virtualenvs]# rmvirtualenv env03
Removing env03...
[root@vagrant-centos65 .virtualenvs]# workon
env01
env02
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python