我最近对学习如何在Python中使用虚拟环境越来越感兴趣。 您可能已经知道,当需要同一软件包的多个版本时,它们很有用。据我了解,使用pip不能区分不同的版本,因为它只使用软件包的名称。
我将以Pipenv为例,它似乎是一种新的强大工具,也被PyPA宣布为新标准。我相当了解Pipenv执行(基本)操作的方式,方式和原因。我不了解(或更令我困惑的是)Pipenv(或我所知道的Python中的任何虚拟环境工具)如何管理磁盘空间。
通常使用Pip将软件包安装在一个地方,然后将其简单地导入代码中即可。 使用Pipenv(或类似工具),您可以创建一个虚拟环境,在其中安装了所有内容,并且无法与外部世界进行通信(我知道这很重要)。
现在让我们假设我正在ProjectA,然后在ProjectB。两者都将具有其环境(对于Pipenv,在〜.virtualenvs中的某个位置)。 我们还假设即使两个项目具有不同的高级依赖关系,它们也有一个共同的子依赖关系。我的意思是,同名同一个版本。 在每种情况下执行“ pipenv install thatpackage ”时,将分别下载和存储该文件。我说得对吗?
如果我是对的,这不是浪费空间吗?我的磁盘上将有2个相同软件包的副本。如果许多软件包都重申了这一点,则可以猜测在处理许多不同项目时浪费了多少空间。
欢呼