Skip to content
本页大纲

了解虚拟环境

What? Why?

什么是虚拟环境,为什么要使用虚拟环境?

首先此处的环境指的是 Python 的运行环境,以 Windows 系统为例,Python 环境包含 python.exepythonw.exe 这两个可执行文件,以及 site-packages 这个用来放置 Python 库的文件夹这俩部分。

其中,python.exepythonw.exe 即是 Python 解释器,用于读取并解释执行 Python 代码。

由于不同的项目有着不同的依赖,可能某个项目要求使用 Pillow^0.8 版本,而另一个项目使用了 Pillow 0.9.x 版本开始才有的新特性, 如果我们需要同时使用这两个项目,就面临版本冲突的问题。

小提示

Pillow^0.8Pillow>=0.8.0,<0.9,即 Pillow^0.8.x

由于 Python 用于放置依赖的 site-packages 的目录结构设计并不像 node_modules 那样可以放下整个互联网,因此我们不能同时安装同一个库的多个版本。

为了在不同的项目上使用同一个库的不同版本,我们需要将不同的项目所使用的 Python 环境互相隔离,在这里我们推荐使用虚拟环境这一成熟的解决方案。

顾名思义,虚拟环境就是为每一个项目都虚拟出一个全新的 Python环境,该 Python 环境仅供该项目使用,这样就可以项目多了之后隔离不同项目避免出现大范围依赖冲突。

常见的虚拟环境解决方案

解决方案,即一条龙服务。可以帮你快速创建、激活、管理虚拟环境。

目前常见的虚拟环境解决方案一般有如下两种:

  • virtualenv
  • venv

venv 是自 Python 3.3 之后内置在 Python 中的一个虚拟环境管理工具;而 virtualenv 比 venv 更早推出,同时也是目前最流行的虚拟环境管理工具,其功能也比 venv 更强大。

有关于这两个工具的区别,由于我们的文档不涉及亲自操作 venv 或 virtualenv 的内容,因此不在此过多涉及,感兴趣话可以询问 New Bing~

吐槽

什么,你问 conda 跑哪去了?这个问题问的好。

不仅仅是 Python,Conda 还可以作为相当一部分语言的包管理器(如 C/C++, Ruby等)。 其作为包管理器的能力是相当强大的。但是很可惜的是,现阶段本文的作者并没有多少 Conda 经验。 所以并不能较为详细、系统地介绍 Conda 虽然直接用 Chatgpt 来写一篇也不是不行

诚邀了解 Conda 环境的朋友帮我们写一篇(没有浓度也行我来组成浓度

Tip:

本文档使用 CC BY-NC-SA 4.0 协议进行共享,详情见 README

MIT License