如何将python ImportError捕获为Shell错误

我有一个以下脚本,用于检查是否已安装python模块.
{
ipython -c 'from package import module' && echo "Successful import"
} || echo "package not found!"
这是bash的典型try..catch语法.如果命令&&会起作用,它将在之后执行命令,否则在||之后执行命令.
但是在这种情况下,是否安装了软件包,或者我应该说命令是否
ipython -c 'from package import module'
返回None或ImportError,bash将其读取为成功执行并输出“成功导入”
如何使用bash检查是否成功导入python软件包?
编辑:并以退出状态1返回?
解决方法:
您至少有两种可能性:
>在shell脚本上使用“ pip”获取已安装软件包的列表,然后使用grep获取游览软件包:
点列表| grep yourpackage&&已安装回声||回声“未安装”
>使用Python-bash脚本,我不知道该如何调用它,但是我知道如何使用它:
就像是:
output=$(
python - <<EOF
try:
import your_package;
print "Package Installed"
except Exception:
print "Package not installed"
EOF
)
echo $output
在这里,您有很多替代方法可以检查软件包/模块的存在,因此,在尝试导入软件包的过程中,您可以以pythonic的方式检查软件包的存在.您可以为此answer或this获取不同的解决方案,并替换导入的your_package;与其中之一.