如果要为脚本使用特定的python环境,则需要将其指向该环境的解释器。在Mac上,默认设置是pipenv
将所有virtualenv安装到其中,/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]
只要项目路径没有更改,它就应该相同。