Shu*_*eng 2 python python-poetry
Poetry 如何将项目与其虚拟环境关联起来~/.cache/pypoetry/virtualenvs?我在项目内找不到任何链接,例如grep -ie NKJBdMnE .什么也不返回。
poetry env info:
Virtualenv
Python: 3.10.11
Implementation: CPython
Path: /home/lddpro/.cache/pypoetry/virtualenvs/lxxo-NKJBdMnE-py3.10
Executable: /home/lddpro/.cache/pypoetry/virtualenvs/lxxo-NKJBdMnE-py3.10/bin/python
Valid: True
System
Platform: linux
OS: posix
Python: 3.10.11
Path: /var/lang
Executable: /var/lang/bin/python3.10
Run Code Online (Sandbox Code Playgroud)
poetry config --list:
[lddpro@0a0aecf400ca lddpro-bff]$ poetry config --list
cache-dir = "/home/lddpro/.cache/pypoetry"
experimental.new-installer = true
experimental.system-git-client = false
installer.max-workers = null
installer.no-binary = null
installer.parallel = true
virtualenvs.create = true
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.no-setuptools = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs" # /home/lddpro/.cache/pypoetry/virtualenvs
virtualenvs.prefer-active-python = false
virtualenvs.prompt = "{project_name}-py{python_version}"
Run Code Online (Sandbox Code Playgroud)
虚拟环境的路径是动态生成的。它不存储在任何地方。这 8 个字母NKJBdMnE是您项目工作目录的 SHA256 的一部分。如果将项目移动到不同的目录,poetry 将使用不同的虚拟环境,因为 SHA256 会有所不同。
您可以在源代码中看到使用的确切算法poetry:env.py#L1196-L1204