首页 > 解决方案 > Python 虚拟环境和空间管理(尤其是 Pipenv)

问题描述

我最近对学习如何在 Python 中使用虚拟环境产生了兴趣。您可能已经知道,它们在需要同一包的多个版本时很有用。据我了解,使用 pip 您无法区分版本,因为它只使用包的名称。

我将以 Pipenv 为例,它似乎是一个新的强大工具,也被 PyPA 宣布为新标准。我相当了解 Pipenv 做(基本)事情的内容、方式和原因。我不明白(或者更好的是,让我感到困惑)是 Pipenv(或我所知道的 Python 中的任何虚拟环境工具)如何管理磁盘上的空间。

使用 Pip,您通常将软件包安装在一个地方,然后您只需将它们导入您的代码中,就是这样。使用 Pipenv(或类似的),您可以创建一个虚拟环境,在该环境中安装了所有东西,但它无法与外部世界通信(我知道这很重要)。

现在让我们假设我正在处理 ProjectA,然后是 ProjectB。两者都有自己的环境(在 ~.virtualenvs 中的某个地方,对于 Pipenv)。我们还假设即使两个项目具有不同的高级依赖项,它们也有一个共同的子依赖项。我的意思是,同名同一个版本。当我在每种情况下执行“pipenv install thatpackage ”时,它将在每种情况下单独下载和存储。我对么?

如果我是对的,这不是浪费空间吗?我的磁盘上有相同包的 2 个副本。如果对许多软件包重复这一点,您可以猜测在处理许多不同的项目时浪费了多少空间。

标签: pythonvirtualenvpipenv

解决方案


推荐阅读