其他分享
首页 > 其他分享> > 找出引发ImportError时真正出了什么问题

找出引发ImportError时真正出了什么问题

作者:互联网

以Django为例,在manage.py中:

try:
    import settings
except ImportError:
    sys.stderr.write("Error: Can't find the file 'settings.py'...")

似乎合法,但是当设置导入non_existant_lib_foo时会发生什么?

好吧,您被送往了追逐PATH之类的所有可能事情的鹅追逐.

当然,您可以使用ImportError以外的其他字符作为e:并仅打印出实际的错误消息,但是,如果您只想捕获特定的错误并给出像上面这样的非常好的建议,该怎么办?

您或多或少地使用了regexp,或者充其量只能猜测“正确的”模块导入失败,然后显示消息.

有没有更好的方法来解决这个问题?

解决方法:

基本上,问题是您的错误消息是错误的-导入失败的其他原因,不仅仅是错误的路径. ImportError的简单含义是“您不能使用此模块,请查看回溯以找出原因”,您只是得出了一个结论.

如果要显示“找不到文件”,则应首先查找文件. imp.find_module做到了.

标签:exception,python-import,python
来源: https://codeday.me/bug/20191208/2093293.html