Python / Docker - ModuleNotFoundError: Модуль не указан - PullRequest
1 голос
/ 07 октября 2019

Я пробовал другое решение, найденное на 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, которые у меня есть, похоже, работают таким образом, но я запускаю их без докера. Я хочу понять, что здесь произошло.

...