Я знаю, что этот вопрос задавался тысячи раз, но я до сих пор не могу получить правильный ответ и всегда сталкиваюсь с одной и той же проблемой.
У меня есть следующий файл:
application/app/__init__.py
Здесь у меня есть некоторая переменная, пусть она будет x
.
Затем у меня есть еще один файл:
application/tests/test_1.py
В test_1.py
Я делаю это:
from app import x
И, находясь в папке application
, я запускаю:
python3 tests/test_1.py
Но возникает следующая ошибка:
ModuleNotFoundError: No module named 'app'
Одно из работающих решений: внутри test_1.py
, добавьте:
import sys
sys.path.append('../')
from app import db
Тогда, если я сделаю:
cd tests
python3 test_1.py
Это отлично работает, но я не хочу это sys.path.append
, а также я хотел бы do
python3 tests/test_1.py
Другое решение заключается в явном изменении переменной окружения PYTHONPATH
, но я бы не хотел этого делать. Нет ли чистого решения этой проблемы?