有没有办法检查是否使用pipenv安装了特定的软件包?
我有一个运行Makefile
的{{1}},但如果未安装软件包,我想显示一条友好消息,并要求用户运行pipenv run <command>
。
目前,run命令只是创建了新的pipenv install
,并且在找不到命令时失败。
答案 0 :(得分:0)
解决方案可以是用最少的代码调用解释器,然后检查返回代码,并根据代码显示你想要的消息。
这样的事情:
all:
@python -c "import mypackage" 2>/dev/null|| (echo "";echo "error message";echo ""; exit 1)
答案 1 :(得分:0)
您可以看到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