了解虚拟环境
What? Why?
什么是虚拟环境,为什么要使用虚拟环境?
首先此处的环境指的是 Python 的运行环境,以 Windows 系统为例,Python 环境包含 python.exe
和 pythonw.exe
这两个可执行文件,以及 site-packages
这个用来放置 Python 库的文件夹这俩部分。
其中,python.exe
和 pythonw.exe
即是 Python 解释器,用于读取并解释执行 Python 代码。
由于不同的项目有着不同的依赖,可能某个项目要求使用 Pillow^0.8
版本,而另一个项目使用了 Pillow 0.9.x
版本开始才有的新特性, 如果我们需要同时使用这两个项目,就面临版本冲突的问题。
小提示
Pillow^0.8
即 Pillow>=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 环境的朋友帮我们写一篇(没有浓度也行我来组成浓度)