多个相关的 Python 项目是否需要它们自己的虚拟环境?
Do multiple, related Python projects need their own virtual environment?
我有两个相关的 Python 项目:
../src/project_a
../src/project_a/requirements.txt
../src/project_a/project_a.py
../src/project_b
../src/project_b/requirements.txt
../src/project_b/project_b.py
两个项目使用相同版本的 Python。各自的 requirements.txt
文件相似但不相同。
我是为每个项目创建一个单独的虚拟环境,还是可以在 ../src
级别创建一个 "global" 虚拟环境?
注意:我显然是使用虚拟环境的新手。
虚拟环境旨在让事物彼此隔离。
- 如果一个项目是另一个项目的依赖项,那么它们必须安装在相同的环境中。
- 如果两个项目有相互冲突的依赖关系,那么他们必须安装在不同的环境中。
- 如果两个项目要 运行 在不同版本的 Python 解释器上,那么它们必须安装在不同的环境中。
这基本上是唯一的规则(我能想到的)。对我来说,剩下的只是最佳实践、个人意见、常识、技术限制等的混合。
例如,可以(再次)想到宠物与牛的类比。虚拟环境可以看作是丢弃的东西,它们是按需创建的(例如使用tox等工具自动创建),一旦清楚地写下依赖关系(例如requirements.txt
),这很容易.
对于您的情况,我可能会从一个 Python 虚拟环境开始,只有在需要时才开始创建更多虚拟环境。一旦项目规模扩大,这很可能会发生。一旦项目需要与其他依赖项冲突的特定版本的依赖项,最终它可能成为绝对必要的。
我有两个相关的 Python 项目:
../src/project_a
../src/project_a/requirements.txt
../src/project_a/project_a.py
../src/project_b
../src/project_b/requirements.txt
../src/project_b/project_b.py
两个项目使用相同版本的 Python。各自的 requirements.txt
文件相似但不相同。
我是为每个项目创建一个单独的虚拟环境,还是可以在 ../src
级别创建一个 "global" 虚拟环境?
注意:我显然是使用虚拟环境的新手。
虚拟环境旨在让事物彼此隔离。
- 如果一个项目是另一个项目的依赖项,那么它们必须安装在相同的环境中。
- 如果两个项目有相互冲突的依赖关系,那么他们必须安装在不同的环境中。
- 如果两个项目要 运行 在不同版本的 Python 解释器上,那么它们必须安装在不同的环境中。
这基本上是唯一的规则(我能想到的)。对我来说,剩下的只是最佳实践、个人意见、常识、技术限制等的混合。
例如,可以(再次)想到宠物与牛的类比。虚拟环境可以看作是丢弃的东西,它们是按需创建的(例如使用tox等工具自动创建),一旦清楚地写下依赖关系(例如requirements.txt
),这很容易.
对于您的情况,我可能会从一个 Python 虚拟环境开始,只有在需要时才开始创建更多虚拟环境。一旦项目规模扩大,这很可能会发生。一旦项目需要与其他依赖项冲突的特定版本的依赖项,最终它可能成为绝对必要的。