我正在编写一个脚本道德黑客目的,我想要第一个功能来检测并向用户显示他们需要安装哪些软件包才能继续。例如,我希望它能够检测用户是否有nmap
或aircrack-ng
在他们的 Linux 系统中!
答案1
对于 Python 模块,我使用如下代码:
# Make sure we have all our necessary modules
allOK=True
for m in ['requests','json','yaml','argparse','re','traceback']:
try:
globals()[m]=importlib.import_module(m)
except Exception as e:
print 'Python module "%s" is required, please use "yum install python-%s" to install it.' % (m,m)
allOK=False
if not allOK:
print 'One or more modules missing, exiting.'
exit(1)
答案2
对于软件包,仅尝试安装它们是最简单的,但是解析rpm -qa
(或其他打包方案的等效内容)之类的输出也可以。如果它是 Python 模块,则可以有一个try
-except
语句,其中except
子句可以安装包含该模块的包并再次尝试导入。
这是问题所在,还是我们都感到困惑?