Это довольно простая структура, содержащая два пакета, каждый со своими модулями.
Насколько я понимаю, это как-то связано с тем, что python не находит путь к пакетам / папке проекта, несмотря на наличие __init__.py
Мои вопросы:
- Какой правильный / чистый способ заставить эту структуру работать с кодом? (предпочтительно ОС, подход, независимый от менеджера пакетов)
- Как это работает в AWS Lambda?
# main.py
from app.my_package import main_module
def handler(event, context):
main_module.do_something()
---
# main_module.py
from app.shared_package import shared_module
def do_something():
print('\nThis is printed from app_module')
print('Calling a function in shared_module')
shared_module.print_something()
---
# shared_module.py
def print_something():
print('This is printed from shared_module\n')
При запуске с компьютера с Windows или Linux: (пробовал также virtualenv)
При вызове с использованием AWS Lambda:
Ссылка:
https://docs.python.org/3/tutorial/modules.html#packages