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

J_Z*_*Zar 16 python virtualenv python-poetry

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

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

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

我知道这一点:

J_Z*_*Zar 20

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

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

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

poetry env use X.Y
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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