python3 - ModuleNotFoundError的用途

时间:2017-04-03 13:07:27

标签: python-3.x exception

我在Python 3.6中遇到了新的ModuleNotFoundError异常。它似乎是ImportError的子类。

ImportError的官方文档说:

  

当import语句尝试加载模块时遇到问题。

ModuleNotFoundError

  

无法找到模块时通过导入引发。

是否真的有必要引入像ModuleNotFoundError这样的异常?这是什么目的?

谢谢!

P.S。你还可以提一下import语句“加载模块时遇到问题”吗?

1 个答案:

答案 0 :(得分:0)

好吧,我找到了答案;感谢@Felix给出的提示:)

在python 3.6之前,如果找不到模块或者在现有模块中找不到子包,类,函数等,则会引发ImportError。这意味着

import foo

from os import ImaginaryClass

都会给ImportError。在python 3.6中,如果模块不存在则引发ModuleNotFoundError,如果模块存在则引发ImportError,但子包或类或函数不存在(或者可能由于其他原因) )。

import foo会引发ModuleNotFoundErrorfrom os import ImaginaryClass会引发Import Error