Обычно плохая идея иметь на sys.path
два пути, один из которых является родительским для другого - при условии, что подкаталог содержит файл __init__.py
, чтобы пометить его как пакет, конечно. Если в пути находится только родительский каталог (а $PYTHONPATH
является частью того, с чем инициализируется sys.path
), модули в подкаталоге могут быть импортированы из пакета, т. Е. Только по одному пути файловой системы, что позволяет избежать риска один модуль импортируется под разными формами.
Так почему бы вам просто не поместить файлы __init__.py
во все подкаталоги, которые в этом нуждаются, и использовать импорт пакетов?
Хотя я думаю, что ваш запрос - плохая идея, он, безусловно, выполним - команда Unix find
может легко перечислить все подкаталоги каталога, по одному на строку (find . -type d
), и вы можете легко склеить строки например по конвейеру находить вывод до tr '\n' :
.