检查是否使用pipenv安装了软件包

时间:2018-01-17 17:42:35

标签: python python-3.x python-2.7 pipenv

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

目前,run命令只是创建了新的pipenv install,并且在找不到命令时失败。

2 个答案:

答案 0 :(得分:0)

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

这样的事情:

all:
    @python -c "import mypackage" 2>/dev/null|| (echo "";echo "error message";echo ""; exit 1)

答案 1 :(得分:0)

您可以看到two wayspipenv run pip freezepipenv graph中安装了哪些依赖项。

然后可以在此输出上使用grepgrep如果匹配则返回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