Есть ли способ импортировать пользовательские модули Python в файл dag, не смешивая среды dag и sys.path? Невозможно использовать что-то вроде
environ["PROJECT_HOME"] = "/path/to/some/project/files"
# import certain project files
sys.path.append(environ["PROJECT_HOME"])
import mymodule
, потому что sys.path
является общим для всех дагов, и это вызывает проблемы (например, совместное использование значений между определениями даг), если вы хотите импортироватьмодули из разных мест, которые имеют одно и то же имя для разных определений дагов (и если дагов много, это трудно отследить).
Документы для использования упакованных пакетов (которые казались решением), похоже, не решают проблему
ZIP-файл будет вставлен в началесписка поиска модулей (sys.path) и, как таковой, он будет доступен любому другому коду, находящемуся в том же интерпретаторе.
Кто-нибудь с большим знанием воздушного потока знает, как справиться с такой ситуацией?
* Отличается от связанного с вопросом тем, что менее конкретно касается реализации