我是 python venv 的新手,很抱歉可能会提出愚蠢的问题。
我正在开发一个小型图书馆。我已经创建了开发虚拟环境,其中包含库使用所需的所有包,并将所有版本的需求卡住到 requirements.txt。
我还想创建包含开发和测试所需的所有包的 requirements_test.txt。因此,用户将从 requirements.txt 安装需求,而开发人员从 requirements_test.txt 安装所有必需的库(例如 pytest、asv、sphinx)。
现在我已经创建了 dev venv,现在我想创建 test venv,当然我不想安装相同的库两次。是否可以将一些库从一个 venv 共享到另一个 venv?
最佳答案
Is it possible to share some libs from one venv to another?
没有。每个虚拟环境将安装一次相同的库(或应用程序),安装不能在环境之间共享。像这样完全没问题。这就是虚拟环境的全部要点,来自同一个库的两个安装相互隔离,特别是在两个不同项目需要同一个库的两个不同版本的情况下。
公平地说,有一些方法可以在两个虚拟环境之间共享同一个库的一个安装以及这样做的原因。我目前知道的一个著名例子是在较新版本的 virtualenv 中。 (版本 20+)。简而言之:此工具创建虚拟环境并且(在特定条件下)能够重用(共享)pip、setuptools 和 wheel 在多个环境中,请参阅 app-data
seeder for virtualenv .
关于该主题的更多讨论:
关于Python虚拟环境(venv): Share libraries in usage and dev/test venvs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60973272/