Я сейчас делаю собственный проект кодирования и я пытаюсь построить модуль, но я не знаю, почему моя структура не работает так, как он должен:Пользовательского Python структура модуля
\mainModule
__init__.py
main.py
\subModule_1
__init__.py
someCode_1.py
someCode_2.py
\subModule_2
__init__.py
otherCode.py
Я хочу, чтобы иметь возможность запустить следующий код из main.py
:
>>> from subModule_1 import someCode_1
>>> someCode_1.function()
"Hey, this works!"
>>> var = someCode_2.someClass("blahblahblah")
>>> var.classMethod1()
>>> "blah blah blah"
>>> from subModule2 import otherCode
>>> otherCode("runCode","#ff281ba0")
Однако, когда я пытаюсь импортировать someCode_1
, например, она возвращает AttributeError
, и я не совсем уверен, почему. Это связано с файлом __init__.py
?
Minimal, полный и поддающийся проверке (я надеюсь ...)
\mainDir __init__.py # blank file main.py \subDir __init__.py # blank file codeFile.py
Используя это ...
#main.py file import subDir subDir.codeFile.function()
И это ...
#codeFile.py file def function(): return "something"
... это возвращает ту же проблему, упомянутой выше **.
** Точная ошибка:
Traceback (most recent call last):
File "C:\...\mainDir\main.py", line 2, in <module>
subDir.codeFile.function()
AttributeError: module 'subDir' has no attribute 'codeFile'
Кредитов @jonrsharpe: Спасибо за показывая мне, как правильно использовать переполнение стека.
Пожалуйста обеспечивают [mcve]. Также вы говорите, что хотите запустить интерактивный сеанс * из «main.py'» *, что не совсем понятно. – jonrsharpe
Может быть вызвано некоторым кодом уровня модуля в 'someCode_1', который выполняется при импорте. Каково точное сообщение об ошибке? – schwobaseggl
@jonrsharpe К сожалению, я имел в виду компиляции и запуска 'main.py' с помощью переводчика (извините, новобранец ошибка) – BUZZYSIN