在Python 3.6中,当导入模块时出现ModuleNotFoundError和ImportError。
在Python 3.6中,当导入模块时出现ModuleNotFoundError和ImportError。
已关闭。这个问题不能重现或是由打字错误引起。现在它不再接受回答。
这个问题是由打字错或是已不能重现了。虽然类似的问题可以在这里讨论,但这个问题已有解决方式,不太可能帮助到其他读者。
改进这个问题
我浏览了很多带有很多答案的问题,但似乎没有一个问题命中了要点。
我在一个名为test的文件夹下设置了两个文件config.py
和test.py
。
config包含代码:
class Config: def __init__(self, name): self.name = name
而test包含:
try: # Trying to find module in the parent package from . import config print(config.debug) del config except ImportError: print('Relative import failed') try: # Trying to find module on sys.path import config print(config.debug) except ModuleNotFoundError: print('Absolute import failed')
这是根据这个stack上的答案提供商的建议组成的。
不幸的是,当我直接调用它 from config import Config
时,两个错误都会出现,我得到了ModuleNotFoundError
我真的迷失在这个问题上了,不知道从哪里开始。
使用Python 3.6,atom.io作为我的IDE。
admin 更改状态以发布 2023年5月21日
#test.py class Test: try: # Trying to find module in the parent package from . import config print(config.Config.debug) del config except ImportError: print('Relative import failed') try: # Trying to find module on sys.path import config print(config.Config.debug) except ModuleNotFoundError: print('Absolute import failed') #config.py class Config: debug = True def __init__(self, name): self.name = name
#config.py
在这个文件中,出现错误是因为变量debug = True不存在。
class Config: debug = True def __init__(self, name): self.name = name
#test.py
在这个文件中,错误出现是因为你在执行文件的导入打印语句并在直接访问变量,也就是说,你需要三个步骤……导入、类、变量>>> config.Config.debug
print(config.Config.debug)
希望它能对你有所帮助。