Запуск модуля с относительным импортом как __main__Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Запуск модуля с относительным импортом как __main__

Сообщение Anonymous »

У меня такая файловая структура:

Код: Выделить всё

- __init__.py
- module.py
+ subpackage
|--- __init__.py
|--- submodule1.py
|--- submodule2.py
|--- etc
  • submodule1.py импортирует из submodule2.py
    импортирует модуль из submodule1.py
Для этого я использую относительный импорт. Например, в submodule1.py:

Код: Выделить всё

from .submodule2 import MyClass
Проблема, с которой я столкнулся, заключается в том, что теперь, используя относительный импорт, я не могу запустить submodule1.py как main. Если я попытаюсь, я получу эту ошибку:

Код: Выделить всё

    from .module2 import MyClass
ModuleNotFoundError: No module named '__main__.module2'; '__main__' is not a package
Мне нравится включать if __name__ == "__main__": в конце моих модулей для тестирования во время разработки (и в некоторых контекстах модуль может может быть полезен даже как отдельный скрипт).

Есть ли способ «съесть мой торт и съесть его тоже» в этом случае? Или лучше всего перенести код if __name__ == "__main__": в отдельный скрипт?

Подробнее здесь: https://stackoverflow.com/questions/606 ... ts-as-main
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»