Задать вопрос
DenisOgr
@DenisOgr
Developer

Python: Как запустить модуль как скрипт в пакете?

Есть архитектура:
/
- readme.md
- name_of_project
-- bin
-- packages
--- foobar
----- __init__.py
----- FoobarModule.py
--- logs
----- __init__.py
----- LogsModule.py

Содержимое модуля
FoobarModule.py
import packages.logs.LogsModule
#some code

if __name__ == '__main__':
   #do some work with this module


Запускаю:
python root/name_of_project/packages/foobar/FoobarModule
но вылитае ошибка, что не может найти модуль LogsModule.
Это и логично, так как пути к нем нет. Вот если бы я запускал из корня - все работает.
Как запустить модуль FoobarModule как отдельный скрипт, что бы выполнить код в if __name__ == '__main__': ?

Хелп разобраться с путями в проекте или киньте доку как правильно все организовать в проекте.
Вопросы:
-- все пути должны быть от packages? если модуль ссылается на модуль в текущем пакете то путь относительный.
-- все запускаемы комманды должны лежать на уровне packages, что бы не было проблем?
-- если я хочу что бы каждый модуль в пакете содержал блое __name__=='__main__' и тестировал себя, как тогда мне запустить этот модуль отдельно? есть варинта запускать из корня проетка: python -m packages.foobar.FoobarModule
  • Вопрос задан
  • 476 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
k0t3n
@k0t3n
Python, InfoSec, IT
from packages.logs import LogsModule
?
Вообще немного странный подход, но как минимум стоит создать в корне скрипт и внутри него вызывать всё остальное.
Ответ написан
@Stqs
senior software developer
я бы сказал что лучше бы вы писали юниттесты вместо ручного запуска каждого файла
это и полезней и проще
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы