При запуске скрипта python я пытаюсь импортировать два разных класса из двух разных скриптов из одного каталога. Первый работает, второй не работает, по причинам, которые я не смог выяснить.
Я извлек весь полезный код из импортированных скриптов и сделал их идентичными, за исключением имен классов, которые нужно попробовать чтобы ограничить число переменных во время тестирования решений.
Я следовал этим двум руководствам, когда возникали проблемы
Я уверен, что это простое исправление, но я пока не смог понять это.
Спасибо за вашу помощь.
Python Версия
Python 3.6.9 :: Anaconda, Inc.
Структура папок
MSAs
__init__.py
lexer.py
main.py
parser.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'
Вещи, которые inte rnet сказал мне попробовать, и их результаты
Мне кажется, что некоторые из них - здравый смысл, что они не работают но я пытался исчерпать все свои варианты.
префикс имени модуля с .
, если не используется подкаталог:
No module named '__main__.lexer'; '__main__' is not a package
изменить на import parser.Parser
No module named 'parser.Parser'; 'parser' is not a package
изменить на from . import Parser
AttributeError: module 'parser' has no attribute 'Parser'
вставить рабочий файл непосредственно в sys.path
* 11 14 *
ImportError: cannot import name 'Parser'
Переключение порядка операторов импорта
ImportError: cannot import name 'Parser'