Я сокращу нотацию. У меня есть
PYTHONPATH=/path1/dir1:/path2/dir2
Структуры:
/path1/dir1/
README
muggle.py
...
utils/
/path2/dir2/
__init__.py
utils/
__init__.py
pkg2/
__init__.py
mod2.py
dir1
имеет модуль utils
, но сам не является пакетом: нет __init__.py
dir2
имеет модуль utils
, а имеет имеет __init__.py
Мой код котельной плиты (до того, как dir1
был частью среды) имеет импорт из dir2
формы
from utils.pkg2.mod2 import func2
Проблема заключается в том, что я сейчас адаптирую этот код для вызова функций, которые импортируют из utils
в dir1
;Я не могу изменить эту часть среды.
Что я могу сделать, чтобы мой код пошел на модуль dir2/utils
? К сожалению, это также должно быть адаптировано к Python 2.6.6 и более поздним версиям.
У меня есть поиск по существующим вопросам в SO и других местах;все ответы, которые я нашел, зависят от некоторого «дескриптора» пакета, которого у меня нет.