Python部署虚拟环境的利器—Virtualenv和 virtualenvwrapper
什么是virtualenv?
virtualenv可创建隔离的Python开发环境,用于解决依赖、版本以及间接权限,它是workingenv和vitrual-python的扩展,virtualenv官网介绍:https://virtualenv.pypa.io/en/stable。
virtualenv创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库。
下面介绍一下与使用Virtualenv相关的技巧。
$ pip install virtualenv
# 或者由于权限问题使用sudo临时提升权限
$ sudo pip install virtualenv
$ virtualenv ENV
# 创建一个名为ENV的目录,并安装了ENV/bin/python
# 创建了lib,include,bin目录,安装了pip
如果在命令行中运行virtualenv –system-site-packages ENV, 会继承/usr/lib/python3.6/site-packages下的所有库, 最新版本virtualenv把把访问全局site-packages作为默认行为
default behavior.
# ENV目录下使用如下命令
# 激活当前virtualenv
$ source ./bin/activate
#当用户名前面出现小括号括起来的虚拟环境名时,表明虚拟环境被成功激活.
使用pip查看当前库:
使用“pip list”指令可查看当前库
(ENV)➜ ENV git:(master) ✗ pip list
pip (1.5.6)
setuptools (3.6)
wsgiref (0.1.2) #发现在只有这三个
pip freeze #显示所有依赖
pip freeze > requirement.txt #生成requirement.txt文件
pip install -r requirement.txt #根据requirement.txt生成相同的环境
# 执行命令,deactivate。
$ deactivate
可使用-p PYTHON_EXE选项在创建虚拟环境的时候指定Python版本,这样可以解决不同项目python版本冲突以及和python库版本不兼容等问题。
#创建python2.7虚拟环境
$ virtualenv -p /usr/bin/python2.7 ENV2.7
#创建python3.4虚拟环境
$ virtualenv -p /usr/local/bin/python3.4 ENV3.4
某些特殊需求下,可能没有网络,我们希望直接打包一个ENV,解压后直接使用,这时候可以使用virtualenv –relocatable指令将ENV修改为可更改位置的ENV。
# 对当前已经创建的虚拟环境更改为可迁移
$ virtualenv --relocatable ./
官方文档:http://virtualenv.readthedocs.org/en/latest/virtualenv.html
# 命令行执行获取帮助
$ virtualenv -h
(1)、这里需要强调的是,在使用virtualenv命令的时候,需要加上目标路径。
(2)、可以使用avtivate_this更改解释器的路径(没太理解,可能需要具体场景分析)
(3)、重新定位隔离环境(也没太明白)
(4)、指定不同的python解释器构建virtualenv环境。
virtualenvwrapper是virtualenv的扩展包,用于更加方便管理虚拟环境,包括:
安装方法
# 执行命令安装pip工具
sudo apt install python-pip
pip install virtualenvwrapper
mkdir ~/.virtualenvs
# vim .bashrc 追加如下配置。
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
# 隐藏文件,ls -a
source /user/.local/bin/virtualenvwrapper.sh
# 运行 source ~/.bashrc
source ~/.bashrc
workon:列出虚拟环境列表
lsvirtualenv:同上
mkvirtualenv [envname]: 新建虚拟环境
workon [envname]: 切换虚拟环境
rmvirtualenv [envname]: 删除虚拟环境
deactivate: 离开虚拟环境
cpvirtualenv [sorce] [dest] #复制虚拟环境
pip freeze > requirements.txt 导出该环境下所有依赖到requirements.txt文件
参照博文 :http://python.jobbole.com/85398/
参照链接:http://www.jianshu.com/p/3abe52adfa2b
vim命令: https://www.cnblogs.com/emanlee/archive/2011/11/10/2243930.html