Не работает импорт в python
Имеется такая структура:
- /dir/file1.py
- /dir/file2.py
- main.py
- main2.py
В file1.py стоит импорт:
from file2 import module
Но получаю ошибку:
ModuleNotFoundError: No module named 'file2'
Пытался так:
from dir.file2 import module
Получаю:
ValueError: attempted relative import beyond top-level package
Как тут быть?
Есть подозрение, что sys.path.append сработает, если добавить его в file1.py, но выглядит не очень - писать его в каждый файл.
Вопросов два:
- Поможет ли
sys.path.append? - Как принято решать такие ситуации?
Ответы (1 шт):
Автор решения: handowl
→ Ссылка
В file1 можно написать
from .file2 import module
Работает,
но тогда запуск file1 напрямую падает.
Это решается запуском с флагом -m вашего модуля. Например
python -m dir.file1