当前,可以在目录中使用PipEnv来检查我们是否具有相应的pipenv环境(例如pipenv --py
)。
是否有类似的API来确定给定的解释器是否为pipenv?
想要在将问题发布到Pipenv仓库上之前进行检查。
答案 0 :(得分:3)
在Makefile中或在构建过程中,您可能需要比给定答案更高的准确性,因为用户可能正在使用virtualenv
或pyenv
。
当您运行pipenv shell
时,我注意到设置了一个环境变量:PIPENV_ACTIVE=1
使用exit
退出外壳后,
PIPENV_SHELL
将不会被设置。
因此,在Makefile中(这可能是gnu-make的特定语法),您可以添加目标:
guard-%:
@ if [ "${${*}}" = "" ]; then \
echo "Run pipenv before command" \
exit 1; \
fi
evaluate: guard-PIPENV_ACTIVE # evaluate model
python evaluate_model.py
$ make evaluate
Makefile:18: *** Run pipenv shell before command. Stop.
注意:make
需要制表符而不是空格,因此复制时必须替换。
答案 1 :(得分:0)
在Pipenv Shell中,您可以运行“ pip -V”,它将向您显示所使用的pip版本的路径-包括虚拟环境路径和Python解释器。
例如:
pipenv shell
产生:
Spawning environment shell (/bin/bash). Use 'exit' to leave.
~/$ . /home/<username>/.local/share/virtualenvs/projects-6W-pCI0A/bin/activate
然后,在Pipenv Shell中运行
pip -V
礼物:
pip 10.0.1 from /home/<username>/.local/share/virtualenvs/projects-6W-pCI0A/local/lib/python2.7/site-packages/pip (python 2.7)
当然,您的用户名将替换<username>
,而您当前的工作目录将替换我的(projects
)