Python无法在同一目录中导入两个相同类中的一个
在运行python脚本时,我试图从同一目录中的两个不同脚本导入两个不同的类。 第一个可行,第二个失败,原因我还不清楚 我从导入的脚本中提取了所有有用的代码,并使它们除了类名之外完全相同,以便在测试解决方案时限制变量的数量 问题发生时,我一直遵循这两个指南Python无法在同一目录中导入两个相同类中的一个,python,python-3.x,python-import,importerror,Python,Python 3.x,Python Import,Importerror,在运行python脚本时,我试图从同一目录中的两个不同脚本导入两个不同的类。 第一个可行,第二个失败,原因我还不清楚 我从导入的脚本中提取了所有有用的代码,并使它们除了类名之外完全相同,以便在测试解决方案时限制变量的数量 问题发生时,我一直遵循这两个指南 我确信这是一个令人麻木的简单修复方法,但我还没有弄明白 谢谢你的帮助 Python版本 Python 3.6.9::Anaconda,Inc. 文件夹结构 MSAs \uuuu init\uuuuu.py lexer.py mai
Python版本
Python 3.6.9::Anaconda,Inc.
文件夹结构
MSAs
\uuuu init\uuuuu.py
lexer.py
main.py
parser.py
\uuuu init\uuuuu.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
"""empty file"""
ImportError:无法导入名称“解析器”
互联网让我尝试的东西,以及它们的结果 我觉得其中一些是常识,它们不起作用,但我试图用尽我所有的选择
没有名为“\uuuu main\uuuu.lexer”的模块__main__u;不是一个包
没有名为'parser.parser'的模块;'parser'不是包
AttributeError:模块“parser”没有属性“parser”
ImportError:无法导入名称“解析器”
切换导入语句的顺序
ImportError:无法导入名称“解析器”
parser
是Python中的一个模块,因此我相信您的代码试图从该文件导入parser
,而不是从parser.py
文件导入。由于该对象不存在,您将看到importorror
。将我的parser.py
更改为queryParser.py
,并将main.py
中的导入从queryParser导入解析器更改为,效果非常好。谢谢,我不明白这为什么能解决这个问题。如果parser.py
在当前目录中,那么导入应该首先在标准库模块之前找到它,对吗?