Python虚拟环境(venv):在使用和开发/测试venv中共享库

2024-06-11 17:28:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python venv的新手,所以很抱歉可能会有一个愚蠢的问题

我正在开发一个小图书馆。我已经用库使用所需的所有包创建了dev虚拟环境,并将所有版本的需求冻结到requirements.txt

我还想用开发和测试所需的所有包创建requirements_test.txt。因此,用户将从requirements.txt安装需求,而开发者将从requirements_test.txt安装所有Nessery libs(例如pytest、asv、sphinx)

现在我已经创建了dev-venv,现在我想创建test-venv,当然我不想两次安装相同的libs。从一个venv到另一个venv是否可以共享一些LIB


Tags: 用户devtest版本txtvenv图书馆pytest
3条回答

我认为建议在同一台机器上使用多个VENV和多个环境。那就再喝一杯吧。在两个VENV中都有相同的库是可以的

即使在虚拟环境中,也有许多与python一起预装的库,它们在您正在开发的包中不是必需的,当我在一个全新的虚拟环境中运行pip freeze时,它会转储30个包,我的项目肯定不需要它们

我建议您手动执行依赖项维护(至少是生产维护),这样您就不会包含无用的库,并且可以保持依赖项文件的干净

Is it possible to share some libs from one venv to another?

不可以。每个虚拟环境将安装一次相同的库(或应用程序),安装不能在环境之间共享。像这样的天气非常好。这就是虚拟环境的全部要点,同一个库中的两个安装相互隔离,特别是在两个不同的项目需要同一个库的两个不同版本的情况下

公平地说,有几种方法可以在两个虚拟环境之间共享同一个库的一个安装,以及这样做的原因。我知道的一个著名的例子是virtualenv(版本20+)的较新版本。简而言之:此工具创建虚拟环境,并且(在特定条件下)能够在多个环境中重用(共享)安装的pipsetuptoolswheel,请参见^{} seeder for virtualenv

关于该主题的更多讨论:

相关问题 更多 >