在运行python脚本时,我试图从同一个目录从两个不同的脚本导入两个不同的类。第一次成功,第二次失败,原因我还没有弄清楚。
我从导入的脚本中提取了所有有用的代码,并使它们相同,只是类名在测试解决方案时试图限制变量的数量。
当问题发生时,我一直跟随着这两本指南。
我相信这是一个令人麻木的简单的解决办法,但我还没有弄清楚。
谢谢你的帮助。
Python版本
Python 3.6.9 :: Anaconda, Inc.
文件夹结构
MSAs __init__.pylexer.pymain.pyparser.py
文件内容
__init__.py
"""empty file"""lexer.py
class Lexer():
def __init__(self):
self.hello = 'world'parser.py
class Parser():
def __init__(self):
self.hello = 'world'main.py
from lexer import Lexer
from parser import Parser
p = Parser()从MSAs 文件夹运行脚本的
msas> python main.py
ImportError: cannot import name 'Parser'
互联网让我尝试的事情,以及他们的结果()
我觉得其中有几个是常识,认为它们不起作用,但我试图用尽我所有的选择。
No module named '__main__.lexer'; '__main__' is not a package
No module named 'parser.Parser'; 'parser' is not a package
AttributeError: module 'parser' has no attribute 'Parser'
ImportError: cannot import name 'Parser'
切换导入语句的顺序
ImportError: cannot import name 'Parser'
发布于 2020-04-02 14:58:54
parser是Python的标准库中的一个模块,所以我相信您的代码试图从该文件中导入Parser,而不是从parser.py文件导入Parser。由于该对象不存在,因此您将得到所看到的ImportError。
https://stackoverflow.com/questions/60994516
复制相似问题