Я пробовал другое решение, найденное на SO. От импорта sys
до выполнения различных манипуляций, но я не могу понять, как заставить это работать.
Здесь моя папка структуры:
├── __init__.py
├── config
│ └── airflow.cfg
├── dags
│ ├── __init__.py
│ └── inscription.py
├── docker-compose.yml
├── extra
│ ├── __init__.py
│ └── sql_statements.py
├── plugins
│ ├── __init__.py
│ └── operators
│ ├── __init__.py
│ ├── __pycache__
│ ├── has_rows.py
│ └── s3_to_redshift.py
└── requirements.txt
Все __ini__.py
пусты.
Когда я импортирую в dags/inscription.py
код, который у меня есть в extra/sql_statements.py
, выполняя from extra.sql_statements import *
, моя IDE (PyCharm) кричит на меня, но когда я запускаю проект с помощью Docker, это не получается.
[2019-10-07 07:35:12,286] {{__init__.py:416}} ERROR - Failed to import: /usr/local/airflow/dags/inscription.py
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/airflow/models/__init__.py", line 413, in process_file
m = imp.load_source(mod_name, filepath)
File "/usr/local/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 "/usr/local/airflow/dags/inscription.py", line 8, in <module>
from extra.sql_statements import *
ModuleNotFoundError: No module named 'extra'
Я не понимаю, потому что некоторые другие скрипты Python, которые у меня есть, похоже, работают таким образом, но я запускаю их без докера. Я хочу понять, что здесь произошло.