【发布时间】:2018-01-17 17:42:34
【问题描述】:
有没有办法检查是否使用 pipenv 安装了特定的包?
我有一个Makefile,它运行pipenv run <command>,但如果未安装软件包,我想显示一条友好的消息,并要求用户运行pipenv install。
目前,运行命令只是创建新的vitrualenv,只是因为找不到命令而失败。
【问题讨论】:
标签: python python-3.x python-2.7 pipenv
有没有办法检查是否使用 pipenv 安装了特定的包?
我有一个Makefile,它运行pipenv run <command>,但如果未安装软件包,我想显示一条友好的消息,并要求用户运行pipenv install。
目前,运行命令只是创建新的vitrualenv,只是因为找不到命令而失败。
【问题讨论】:
标签: python python-3.x python-2.7 pipenv
可以看到two ways:pipenv run pip freeze或pipenv graph中安装了哪些依赖项。
然后您可以在此输出上使用grep。 grep 如果匹配,则返回 0,否则返回非零,您可以通过检查 $? 来查看 check the return value。
把它们放在一起,你可以做这样的事情:
pipenv run pip freeze | grep mypackage
if [ $? -ne 0 ]; then
echo "mypackage isn't installed; run pipenv install mypackage"
fi
【讨论】:
一种解决方案是使用最少的代码调用解释器,然后检查返回代码并根据代码显示您想要的消息。
类似这样的:
all:
@python -c "import mypackage" 2>/dev/null|| (echo "";echo "error message";echo ""; exit 1)
【讨论】: