如何检查给定的Python环境是否为PipEnv

时间:2019-01-23 15:55:12

标签: python pipenv

当前,可以在目录中使用PipEnv来检查我们是否具有相应的pipenv环境(例如pipenv --py)。 是否有类似的API来确定给定的解释器是否为pipenv? 想要在将问题发布到Pipenv仓库上之前进行检查。

2 个答案:

答案 0 :(得分:3)

在Makefile中或在构建过程中,您可能需要比给定答案更高的准确性,因为用户可能正在使用virtualenvpyenv

当您运行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需要制表符而不是空格,因此复制时必须替换。

guard-%来自https://stackoverflow.com/a/7367903/1340069

答案 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