2

有没有办法检查是否使用 pipenv 安装了特定的包?我有一个Makefilewhich 运行,pipenv run <command>但如果未安装软件包,我想显示一条友好消息并要求用户运行pipenv install.

目前,运行命令只是创建新命令vitrualenv,并且失败并找不到命令。

4

2 回答 2

1

您可以通过两种方式查看安装了哪些依赖项:pipenv run pip freezepipenv graph.

然后,您可以grep在此输出上使用。 grep如果匹配,则返回 0,否则返回非零,您可以通过检查来检查返回值$?

把它们放在一起,你可以做这样的事情:

pipenv run pip freeze | grep mypackage
if [ $? -ne 0 ]; then
    echo "mypackage isn't installed; run pipenv install mypackage"
fi
于 2019-01-22T12:27:34.717 回答
0

一种解决方案是使用最少的代码调用解释器,然后检查返回代码并根据代码显示您想要的消息。

像这样的东西:

all:
    @python -c "import mypackage" 2>/dev/null|| (echo "";echo "error message";echo ""; exit 1)
于 2018-01-17T18:32:50.587 回答