您的位置:首页 > 移动开发

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

2018-02-04 12:59 996 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: