动态检测丢失的模块(Python)



在处理更大的项目时,我非常热衷于错误检测和处理。我正在使用一些用户可能已经安装或没有安装的模块,所以我需要考虑这种可能性。

我想知道一种方法,可以在尝试导入时检测哪些模块丢失。目前,我有一组try/except块在监视ImportErrors,并将产生错误的模块的名称附加到列表中。

当前代码:

errors = []
try:
    import socket
except ImportError:
    errors.append('socket')
    pass
try:
    import shutil
except ImportError:
    errors.append('shutil')
try:
    import urllib
except ImportError:
    errors.append('urllib')
    pass
if len(errors) > 0:
    print colors.red + '[!] ' + colors.end + 'Error: The Following Module(s) Encountered Error(s): n'
    for i in range(len(errors)):
        print 't' + errors[i]
    print colors.blue + 'n[*] ' + colors.end + 'Please Install/Reinstall the Listed Modules'
    quit()

这种方法似乎很好用,但我想要一种能减少整体空间的方法。使用这种多尝试/例外块方法的主要原因是我需要检测哪个模块在导入时出现问题。

import importlib
moduleNames = ['socket', 'shutil', 'urllib']
missingModuleNames = []
for moduleName in moduleNames:
    try:
        importlib.import_module (moduleName)
    except:
        missingModuleNames.append (moduleName)
print (missingModuleNames)

相关内容

  • 没有找到相关文章

最新更新