У меня есть два файла python - my_python_A.py и my_python_B.py. Первый файл ссылается на второй (from my_python_B import *
).Как импортировать локальный модуль python при запуске скрипта python в Oozie?
Я выполнения первого файла питона от действия оболочки в Oozie (т.е. сценарий просто python my_python_A.py
), и я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "my_python_A.py", line 2, in <module>
from my_python_B import *
ImportError: No module named my_python_B
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1]
Оба питона файлы находятся в одной папке в HDFS. Как я могу заставить этот оператор импорта работать?
Обычно интерпретатор выглядит сначала в 'текущей директории', затем в вашей' shell', а затем в вашей 'default PATH'. Какую среду вы используете? И являются ли эти файлы частью одного проекта? Если это так, возможно, вам лучше использовать файл '__init__' – jmugz3
@ jmugz3 - не уверен, что это так же актуально при работе в кластере, поскольку все файлы хранятся в распределенной системе (то есть HDFS). – John
Gotcha. Я не знаком с Oozie, но похоже, что ваш интерпретатор не распознает ваш модуль, поэтому вы можете попытаться добавить свой рабочий каталог в свой путь к оболочке. – jmugz3