我是 python venv 的新手,很抱歉可能提出愚蠢的问题。
我正在开发一个小型图书馆。我已经创建了开发虚拟环境,其中包含库使用所需的所有包,并将所有版本的需求冻结到requirements.txt。
我还想创建requirements_test.txt,其中包含开发和测试所需的所有包。因此,用户将从requirements.txt安装需求,而开发人员将从requirements_test.txt安装所有必需的库(例如pytest、asv、sphinx)。
现在我已经创建了 dev venv,现在我想创建 test venv,当然我不想安装相同的库两次。是否可以将一些库从一个 venv 共享到另一个 venv?
是否可以将一些库从一个 venv 共享到另一个 venv?
不可以。相同的库(或应用程序)将在每个虚拟环境中安装一次,安装不能在环境之间共享。这样就完全没问题了。这就是虚拟环境的全部要点,来自同一库的两个安装彼此隔离,特别是对于两个不同的项目需要同一库的两个不同版本的情况。
公平地说,有多种方法可以在两个虚拟环境之间共享同一库的一个安装,以及这样做的原因。我目前知道的一个著名的例子是virtualenv的较新版本(版本 20+)。简而言之:该工具创建虚拟环境,并且(在特定条件下)能够在多个环境中重用(共享)pip、setuptools和Wheel的安装,请参阅virtualenvapp-data的播种器。
关于该主题的更多讨论: