python虚拟环境virtualenvwrapper&virtualenv & venv & pipenv 之间的联系与区别

Python应用程序有时会需要包或者模块的特定版本,如应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本。这意味着只安装其中一个版本可能无法满足每个应用程序的要求,当我们同时开发多个python工程时,不同的工程会将第三方的包存放在相同的路径下。这就意味着,如果有两个工程依赖同一个包,但是所需要的版本却不一样。由于Python无法根据版本来区分包的安装路径,所以就会发生版本冲突。

Python虚拟环境就是为了给不同的工程创建互相独立的运行环境。在虚拟环境下,每一个工程都有自己的依赖包,而与其它的工程无关。不同的虚拟环境中同一个包可以有不同的版本。

创建python虚拟环境的方法有很多, virtualenvwrapper,virtualenv,venv 以及 pipenv 。这里介绍一下他们的区别与联系。

 

1 virtualenv

virtualenv同时支持 Python2 和 Python3,而且可以为每个虚拟环境指定 Python 解释器,并选择不继承基础版本的包。官网为: https://virtualenv.pypa.io/en/latest/

1.1 安装

pip3 install virtualenv # 使用自己对应安装的pip版本

1.2 使用

1)创建虚拟环境目录

mkdir env-home

cd env-home

2)创建一个独立的Python运行环境: myenv

virtualenv --system-site-packages myenv

注: 1)参数:--system-site-packages (可省略)复制已经安装到系统Python环境中

的所有第三方包,也可以省略从而得到一个“纯净”的运行环境。

2) 在当前目录下会生成一个名为:“myenv” 的目录,该目录中存放刚生成的虚拟环境文件

3)激活虚拟运行环境

source myenv/bin/activate

命令执行完后,命令提示符变成有个(myenv)前缀,表示当前环境是一个名为“myenv”的Python环境,此时可以在该环境中安装库、运行程序等。

4)退出当前的myenv环境

deactivate

 

2 virtualenvwrapper

virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。

一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,比如放到 ~/virtualenvs/,并对不同的虚拟环境使用不同的目录来管理。virtualenvwrapper 正是这样做的。并且,它还省去了每次开启虚拟环境时候的 source 操作,使得虚拟环境更加好用。

 

2.1 安装

pip3 install virtualenvwrapper

安装完成后,位于 ~/.local/bin

 

首先,需要对 virtualenvwrapper进行配置。它需要指定一个环境变量,叫做WORKON_HOME,并且运行初始化工具 virtualenvwrapper.sh,这个脚本在 ~/.local/bin目录下。WORKON_HOME 就是将要用来存放各种虚拟环境目录的目录,这里我们可以设置为 ~/virtualenvs。

export WORKON_HOME='~/virtualenvs'

source ~/.local/bin/virtualenvwrapper.sh

将此两条命令添加到 ~/.bashrc 中。这样每次启动终端的时候都会自动运行。

 

2.2 使用

1) 创建虚拟环境

利用 virtualenvwrapper,我们可以轻松创建一个虚拟环境:

mkvirtualenv jetbot

之后我们就有了一个叫做 jetbot 的虚拟环境,存放在 $WORKON_HOME/jetbot 目录下。

新建虚拟环境之后会自动激活虚拟环境。

2)进入某个虚拟环境:

workon jetbot

3)离开虚拟环境:

deactivate

4)删除虚拟环境:

rmvirtualenv spider

 

3 venv

Python 从3.3 版本开始,自带了一个虚拟环境 venv。它的很多操作都和 virtualenv 类似,但是两者运行机制不同。因为仅仅支持 python 3.3 和以后版本。所以,要在 python2 上使用虚拟环境,依然要利用 virtualenv 。官网:https://docs.python.org/zh-cn/3/tutorial/venv.html

3.1 安装

# Windows 中venv已经以标准库的形式存在,不用再单独安装

# Linux

sudo apt-get install python3-venv # 如有不同版本的Python3,可指定具体版本venv:python3.5-venv

3.2 使用

在当前目录创建一个独立的Python运行环境: myenv

# Windows py -3 -m venv myvenv # Linux python3 -m venv myvenv

3)激活虚拟运行环境

source myvenv/bin/activate

命令执行完后,命令提示符变成有个(myvenv)前缀

4)退出当前的myenv环境

deactivate

 

4 pipenv

pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv,能够有效管理Python多个环境,各种第三方包及模块。pipenv集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷。主要完成两个功能:

1) 创建虚拟环境

2) 依赖管理

pipenv本人用的比较少,这里有一个入门教程:https://blog.csdn.net/weixin_40922744/article/details/103723069

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值