例如我想检查 py-sqlite3 是否可用..?其中一种方法是使用一些最少的 python 脚本调用该命令并捕获错误?
我想检查任何 Linux 发行版和 Unix 系统(至少是 BSD)
实现这一目标的最佳方法是什么?
Ps 请提供 shell 脚本错误捕获的示例,因为我对 shell 脚本不是很熟悉
答案1
我发现现有的答案不完整,缺乏足够好的例子。这是我确定的解决方案:
# an example checking if the pandas package is installed
if python -c 'import pkgutil; exit(not pkgutil.find_loader("pandas"))'; then
echo 'pandas found'
else
echo 'pandas not found'
fi
此示例的 Github 要点可在此处找到: https://gist.github.com/shaypal5/d505af9953cd86f59c750fa600ee4ba6
答案2
在bash中:
$ python -c 'import sqlite3' 2>/dev/null && echo "python sqlite3 modules install" || echo "python sqlite3 modules not install"
python sqlite3 modules install
$ python -c 'import sqlite3' 2>/dev/null && echo "python sqlite3 modules install" || echo "python sqlite3 modules not install"
python sqlite3 modules not install
答案3
package_exist(){
package=$1
if pip freeze | grep $package=; then
echo "$package found"
else
echo "$package not found"
fi
}
然后你可以像这样使用它:
package_exist package_name
答案4
使用 Python 可以轻松实现这一点。
import sys
try:
import sqlite3
except ImportError:
sys.exit(1)
else:
sys.exit(0)
return code 0
如果可以导入则退出,return code 1
如果不能导入则退出。
安德鲁