python:使用不正确的导入语句导入模块=>;源于源代码的非穷尽信息

python:使用不正确的导入语句导入模块=>;源于源代码的非穷尽信息,python,import,importerror,Python,Import,Importerror,我有一个有趣的问题想问你们 我正在导入一些模块A,而导入一些不存在的模块B。当然,这将导致导入错误 这就是A.py的样子 import B 现在让我们导入一个 >>> import A Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/tmp/importtest/A.py", line 1, in <module> import

我有一个有趣的问题想问你们

我正在导入一些模块A,而导入一些不存在的模块B。当然,这将导致导入错误

这就是A.py的样子

import B
现在让我们导入一个

>>> import A
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/tmp/importtest/A.py", line 1, in <module>
  import B
ImportError: No module named B
导入一个 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/tmp/importset/A.py”,第1行,在 进口B ImportError:没有名为B的模块 好的,开始问题。我如何知道此ImportError是由于导入了,还是由于没有查看错误的字符串表示形式而在内部进行了损坏的导入

区别在于A不存在或者有不正确的导入语句

希望你能帮助我


Cheers bb

您还可以查看反向跟踪,它可以在代码中进行检查

但是,您为什么要找出答案?无论哪种方法A都不起作用。

标准库中有模块,因此您可以执行以下操作:

>>> import imp
>>> imp.find_module('collections')
(<_io.TextIOWrapper name=4 encoding='utf-8'>, 'C:\\Program Files\\Python31\\lib\\collections.py', ('.py', 'U', 1))
>>> imp.find_module('col')
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    imp.find_module('col')
ImportError: No module named col
导入imp >>>imp.find_模块(“集合”) (,'C:\\ProgramFiles\\Python31\\lib\\collections.py',('.py','U',1)) >>>imp.find_模块(“列”) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 imp.find_模块(“列”) ImportError:没有名为col的模块 当找不到模块时,将引发导入错误。由于它不尝试导入该模块,因此它完全独立于该特定模块是否会引发
ImportError


当然,还有一个
imp.load\u模块
来实际加载该模块。

这是针对某种插件系统,其中用户编码的模块在运行时导入(取决于某些用户输入),可能存在,但由用户错误地实现。。。例如,通过导入错误的模块…另外:我想知道A是否首先存在