如果你想为你的脚本使用一个特定的 python 环境,你需要将它指向那个环境的解释器。在 Mac 上,默认情况下pipenv
将所有 virtualenvs 安装到,/Users/<user_name>/.local/share/virtualenvs/
但是可以按照手册中的说明将其设置到不同的位置:
Pipenv 自动尊重 WORKON_HOME 环境变量,如果你设置了它 - 所以你可以告诉 pipenv 将你的虚拟环境存储在你想要的任何地方,例如:
export WORKON_HOME=~/.venvs
此外,您还可以通过设置 PIPENV_VENV_IN_PROJECT 环境变量让 Pipenv 将 virtualenv 粘贴到 project/.venv 中。
pipenv --venv
您可以在项目文件夹中找到 virtualenv 的确切位置。它返回类似/Users/reedef/.local/share/virtualenvs/project-BpR9WgCa
. 口译员在./bin/python
那个位置。
如果我们假设您没有设置任何环境变量并且您使用的是 Mac,那么这意味着您可以编写一个脚本:
#!/usr/bin/env sh
/Users/reedef/.local/share/virtualenvs/project-BpR9WgCa/bin/python /home/project/main.py
并将它放在你的 $PATH 中的某个地方,例如/usr/local/bin/my_fancy_main
让它在那个特定的环境中运行。
注意:正如@Jon 在评论中提到的那样,-BpR9WgCa
路径的末尾是稳定的,因为它是从项目路径中创建的:
hash = hashlib.sha256(location.encode()).digest()[:6]
只要项目路径没有改变,它就应该是一样的。