我的问题: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(使用前将#替换为@)