Запуск кода в модулях Python без привязки к запущенному сценарию

python #path

#python #путь

Вопрос:

Этот вопрос, скорее всего, задавался раньше, но я, похоже, не могу определить ключевые термины для поиска, чтобы найти ответ, поэтому я прошу прощения за повторный вопрос, если он был задан. В принципе, у меня следующая структура каталогов:

 root_dir/
├── main.py
└── sub_dir/
    └── module.py
    └── utils.py
    └── file.txt

 

Я использую module.py in main.py , который является сценарием, который я запускаю. В module.py , я хочу использовать функцию из utils.py . Я должен делать from sub_dir.utils import function вместо from utils import function , хотя utils.py и module.py находятся в том же каталоге.
Аналогично, если я хочу открыть file.txt из функции, определенной в utils.py , мне нужно сделать open('subdir/file.txt', r) , а не open('file.txt', r) в функции

Ответ №1:

вы можете использовать from .utils import function внутри module.py

это называется относительным импортом