Ошибка модуля не найдена, но путь указан в PYTHONENV и sys.path

#python #python-3.x #import #airflow #python-import

#python #python-3.x #импорт #поток воздуха #python-импорт

Вопрос:

У меня следующая структура проекта:

 airflow_ci
  plugins
    sql_operator.py
  utilities
    __init__.py
    db.py
  

Из sql_operator.py я хочу импортировать функцию, get_primary_keys которая находится в db.py . Для этого я закодировал:

 from utilities.db import get_primary_keys
  

Кроме того, я добавил путь к PYTHONENV с:

 export PYTHONENV=/home/ubuntu/airflow_ci/utilities
  

Если я это сделаю printenv PYTHONENV , я получу следующее:

 /home/ubuntu/airflow_ci/utilities
  

Ввод в python и печать sys.path дает мне следующее:

 ['', '/home/ubuntu/airflow_ci/utilities', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/ubuntu/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
  

Тем не менее, я получаю ошибку:

 Traceback (most recent call last):
  File "/home/ubuntu/.local/lib/python3.6/site-packages/airflow/plugins_manager.py", line 182, in <module>
    m = imp.load_source(namespace, filepath)
  File "/usr/lib/python3.6/imp.py", line 172, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 684, in _load
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/ubuntu/airflow_ci/plugins/sql_operator.py", line 2, in <module>
    from utilities.db import get_primary_keys_query
ModuleNotFoundError: No module named 'utilities'
  

Я пробовал с большим количеством инструкций экспорта, таких как:

 export PYTHONPATH=$PYTHONPATH:/home/ubuntu/airflow_ci
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/airflow_ci/utilities
export PYTHONPATH=/home/ubuntu/airflow_ci/utilities/
export PYTHONPATH=home/ubuntu/airflow_ci/utilities
  

Возможно ли решить это без добавления sys.append строки кода в sql_operator.py ?