在另外一篇文章已经讲了 Python 版本管理。本文主要讲 Python 虚拟环境管理。有了这两个方面的工具,就可以实现在 Python 的不同版本不同虚拟环境间方便地切换。
pyenv-virtualenv 一般会随 pyenv 一起安装,也可以通过下文方式独立安装。
什么是虚拟环境
一种采用协作式隔离的运行时环境,允许 Python 用户和应用程序在安装和升级 Python 分发包时不会干扰到同一系统上运行的其他 Python 应用程序的行为。
虚拟环境其实是一个目录树,其中安装有特定Python版本,以及许多其他包。
为什么需要虚拟环境
Python 应用程序通常会使用非标准库内的软件包和模块。因为可能需要修复特定的错误,或者使用库的过时版本的接口,应用程序有时需要特定版本的库。
这意味着一个 Python 安装可能无法满足每个应用程序的要求。如果应用程序 A 需要特定模块的1.0版本,但应用程序 B 需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。
这个问题的解决方案就是创建一个虚拟环境。然后,不同的应用将可以使用不同的虚拟环境。 要解决先前需求相冲突的例子,应用程序 A 可以拥有自己的 安装了 1.0 版本的虚拟环境,而应用程序 B 则拥有安装了 2.0 版本的另一个虚拟环境。 如果应用程序 B 要求将某个库升级到 3.0 版本,也不会影响应用程序 A 的环境。
pyenv-virtualenv
pyenv-viralenv 是一个 pyenv 插件,它提供了在类 UNIX 系统上管理虚拟环境