Python工具Poetry如何知道项目虚拟环境的路径?

2024-02-27

我的问题:Python工具Poetry如何知道项目虚拟环境的路径?

解释:当我跑步时poetry init在目录内,创建一个新项目。然后我跑poetry install并创建一个新的虚拟环境。但是,该虚拟环境的路径和哈希值均不存储在pyproject.toml or poetry.lock正如我所料。那么当我运行时Poetry如何知道虚拟环境的位置poetry env info -p?

除了想知道发生了什么之外,我需要知道这一点还有两个原因:

  • 如何移动带有 Poetry 项目的目录而不破坏与其虚拟环境的链接?
  • 如何知道Poetry的哪些虚拟环境未使用并可以删除?

可能的解决方案:查看 Poetry 的源代码,在我看来,有一个文件envs.toml可能包括从文件系统目录到虚拟环境哈希的映射,但在我的 Mac OS 11.1 上我找不到这样的文件。


我更深入地研究了源代码,现在我可能已经理解了:

  • 相关代码位于poetry/utils/env.py方法内部EnvManager.generate_env_name(...)
  • 该代码通过使用项目名称来推断环境的位置pyproject.toml并添加父目录的哈希值pyproject.toml

作为结果:

  • 没有简单的方法可以删除不再使用的环境
  • 另外,如果我想移动诗歌项目的目录,我需要重命名虚拟环境的文件夹并正确替换哈希值。这应该可行,但最好只运行poetry install再次创建一个新的虚拟环境
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python工具Poetry如何知道项目虚拟环境的路径? 的相关文章

随机推荐