如何让 pipenv 基于符号链接路径而不是真实路径工作

How to get pipenv to work based on a symlink path rather than the real path

假设我的项目名称是test

符号链接test --> test_releases/test_v1

cd test
pipenv shell

以上命令为 test_v1 目录提供了一个虚拟环境, 但我想将 virtualenv 链接到 test

bcoz wehn 我更新了项目并有符号链接 test --> test_releases/test_v2,它创建了一个新的 test_v2 我有很多虚拟环境堆积

没有这样的选项可用,我做了一个 pipenv 的分支并添加了我的自定义 environemnt 变量以获得所需的结果

似乎有一个选项可以做到这一点,至少在最新版本中,使用 VIRTUAL_ENV 环境变量:

export VIRTUAL_ENV=/path/to/your/venv
pipenv shell

在你上面的例子中:

  1. 从那里创建物理目录 test 和 运行 pipenv install 以使用 test 目录创建 venv linked .让我们假设(例如)它是在 /home/user/.local/share/virtualenvs/test-nRgTMf73 中创建的(显然你的哈希很可能会不同)

  2. 删除物理目录并创建一个符号 link,例如test --> test_releases/test_v1

  3. cd 现在变成 test 和 运行:

export VIRTUAL_ENV=/root/.local/share/virtualenvs/OfflineSystem-nRgTMf73
pipenv shell

无论符号 link 的物理目标如何,这都将使用原始 venv(即 test --> test_releases/test_v2 等相同)