【Python-Virtualenv虚拟环境】Python部署虚拟环境的利器—Virtualenv和 virtualenvwrapper

Python部署虚拟环境的利器—Virtualenv和 virtualenvwrapper

一、 Virtualenv

什么是virtualenv?
virtualenv可创建隔离的Python开发环境,用于解决依赖、版本以及间接权限,它是workingenv和vitrual-python的扩展,virtualenv官网介绍:https://virtualenv.pypa.io/en/stable。

  • 不同的virtualenv环境隔离,每个环境都有独立安装目录
  • 可以通过像–python的这种命令来更改解释器的版本
  • 开发可以在不同的virtualenv环境下工作、部署、测试,并且不受当前系统限制

virtualenv创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库。

下面介绍一下与使用Virtualenv相关的技巧。

1.安装Virtualenv

$ pip install virtualenv
# 或者由于权限问题使用sudo临时提升权限
$ sudo pip install virtualenv

2.virtualenv创建虚拟环境

 $ virtualenv ENV    
 # 创建一个名为ENV的目录,并安装了ENV/bin/python
 # 创建了lib,include,bin目录,安装了pip
  • lib目录 : 所有安装的python库都会放在这个目录中的lib/pythonX.X/site-packages/中 ;
  • bin目录 : bin/python是当前虚拟环境使用的python解析器 ;

如果在命令行中运行virtualenv –system-site-packages ENV, 会继承/usr/lib/python3.6/site-packages下的所有库, 最新版本virtualenv把把访问全局site-packages作为默认行为
default behavior.

3.激活virtualenv

 # ENV目录下使用如下命令
 # 激活当前virtualenv
 $ source ./bin/activate  
 #当用户名前面出现小括号括起来的虚拟环境名时,表明虚拟环境被成功激活.
  • pip list :指令可查看当前库。
  • pip freeze :显示所有依赖。
  • pip install -r requirement.txt : 根据requirement.txt生成相同的环境。

使用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生成相同的环境

4.关闭virtualenv

 # 执行命令,deactivate。
 $ deactivate

5.指定python版本

可使用-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

6.生成可打包环境

某些特殊需求下,可能没有网络,我们希望直接打包一个ENV,解压后直接使用,这时候可以使用virtualenv –relocatable指令将ENV修改为可更改位置的ENV。

 # 对当前已经创建的虚拟环境更改为可迁移
 $ virtualenv --relocatable ./

7.获得帮助

官方文档:http://virtualenv.readthedocs.org/en/latest/virtualenv.html

 # 命令行执行获取帮助
 $ virtualenv -h

8. 注意事项:

(1)、这里需要强调的是,在使用virtualenv命令的时候,需要加上目标路径。
(2)、可以使用avtivate_this更改解释器的路径(没太理解,可能需要具体场景分析)
(3)、重新定位隔离环境(也没太明白)
(4)、指定不同的python解释器构建virtualenv环境。

二、virtualenvwrapper

virtualenvwrapper是virtualenv的扩展包,用于更加方便管理虚拟环境,包括:

  • 将所有虚拟环境整合在一个目录上;
  • 管理(新增、删除、复制)虚拟环境
  • 快速切换虚拟环境,具体的使用执行方式如下:

安装方法

1、安装 virtualenvwrapper

# 执行命令安装pip工具
sudo apt install python-pip
pip install virtualenvwrapper

2、创建目录存放虚拟环境

mkdir ~/.virtualenvs

3、在.bashrc中末尾添加

  # vim .bashrc 追加如下配置。
  export WORKON_HOME=~/.virtualenvs
  source /usr/local/bin/virtualenvwrapper.sh
  # 隐藏文件,ls -a 
  source /user/.local/bin/virtualenvwrapper.sh

4. 执行source virtualenvwrapper.sh激活配置

  # 运行 source ~/.bashrc
  source ~/.bashrc

5. virtualenvwrapper 命令列表:

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

你可能感兴趣的:(python)