考虑try: import someProprietaryModuleexcept ImportError: raise ImportError('It appears that <someProprietaryModule> is not installed...')运行时,如果未安装someProprietaryModule,则会看到:(traceback data)ImportError: unknown module: someProprietaryModuleDuring handling of the above exception, another exception occurred:(traceback data)ImportError: It appears that <someProprietaryModule> is not installed...也许我不希望出现“在处理上述异常...期间”(及其上方的线)。我可以这样做:_moduleInstalled = Truetry: import someProprietaryModuleexcept ImportError: _moduleInstalled = Falseif not _moduleInstalled: raise ImportError('It appears that <someProprietaryModule> is not installed...')但这感觉有点像骇客。我还能做什么?
2 回答

守着星空守着你
TA贡献1799条经验 获得超8个赞
在raise ... from None这种情况下,可能会使用Python 3.3及更高版本。
try:
import someProprietaryModule
except ImportError:
raise ImportError('It appears that <someProprietaryModule> is not installed...') from None
这具有期望的结果。

小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
这可以在Python 2.7和Python 3中完成:
try:
import someProprietaryModule
except ImportError as e:
raised_error = e
if isinstance(raised_error, ImportError):
raise ImportError('It appears that <someProprietaryModule> is not installed...')
添加回答
举报
0/150
提交
取消