如何在诗歌中创造全新的虚拟环境或复制现有的虚拟环境? (一个项目中的多个环境)

How to create a brand new virtual environment or duplicate an existing one in poetry? (Multiple environment in a project)

我有一个项目和一个用诗歌创建的现有虚拟环境(诗歌install/init)。 因此,据我所知,虚拟环境的目的是避免修改系统基础环境和隔离的可能性(每个项目、每个开发、每个系统等...)。

如何为我的诗歌项目创造另一个全新的环境?我怎样才能最终复制并使用现有的?

我的意思是当前的(激活的)不应该参与这个(除了最终复制它)因为我想测试另一组依赖项和代码。

我知道这一点:

诗歌似乎 每个 python 解释器 绑定到一个 virtualenv。 诗歌也绑定到pyproject.toml文件及其路径生成新环境

所以有 2 个棘手的解决方案:

1 - 在 pyproject.toml 和 中更改你的 deps 使用另一个 python 版本 (例如使用 pyenv 安装)然后:

poetry env use X.Y

poetry 将创建一个新的虚拟环境,但这与仅更改一些项目部门并不完全相同。

2 - 使用来自另一路径的另一个 pyproject.toml:

mkdir env_test
cp pyproject.toml env_test/pyproject.toml
cd env_test
nano pyproject.toml # edit your dependencies
poetry install # creates a brand new virtual environment
poetry shell
# run your script with the new environment

这将生成一个新环境,其中仅更改了要求的依赖项。两种环境可以同时使用。 经过测试,终于可以用env命令删除新环境了