airflow-maintenance-dags icon indicating copy to clipboard operation
airflow-maintenance-dags copied to clipboard

issue on airflow 2.6.0 - airflow-db-cleanup.py - No module named 'airflow.jobs.base_job'

Open ITJamie opened this issue 1 year ago • 5 comments

error on import of airflow-db-cleanup.py

Broken DAG: [/opt/bitnami/airflow/dags/airflow-db-cleanup.py] Traceback (most recent call last):
  File "/opt/bitnami/airflow/dags/airflow-db-cleanup.py", line 17, in <module>
    from airflow.jobs import BaseJob
ImportError: cannot import name 'BaseJob' from 'airflow.jobs' (/opt/bitnami/airflow/venv/lib/python3.9/site-packages/airflow/jobs/__init__.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/opt/bitnami/airflow/dags/airflow-db-cleanup.py", line 19, in <module>
    from airflow.jobs.base_job import BaseJob
ModuleNotFoundError: No module named 'airflow.jobs.base_job'

ITJamie avatar May 03 '23 20:05 ITJamie

base_job.py is gone in airflow 2.6.0: https://github.com/apache/airflow/tree/main/airflow/jobs

ITJamie avatar May 03 '23 21:05 ITJamie

I've replaced try: from airflow.jobs import BaseJob except Exception as e: from airflow.jobs.base_job import BaseJob

by

try: from airflow.jobs.job import Job as BaseJob except Exception as e: try: from airflow.jobs.base_job import BaseJob except Exception as e: from airflow.jobs import BaseJob

it seems to work (I changed the order of import since I'm in 2.6 and it's not useful to try import that will fail)

darkag avatar May 04 '23 09:05 darkag

watching; have same problem and the code update from darkag also fixed my import error

ebdavison avatar Aug 28 '23 22:08 ebdavison

I've replaced try: from airflow.jobs import BaseJob except Exception as e: from airflow.jobs.base_job import BaseJob

by

try: from airflow.jobs.job import Job as BaseJob except Exception as e: try: from airflow.jobs.base_job import BaseJob except Exception as e: from airflow.jobs import BaseJob

it seems to work (I changed the order of import since I'm in 2.6 and it's not useful to try import that will fail)

Thanks, worked successfully on airflow 2.7

jasminehung avatar Sep 14 '23 03:09 jasminehung

#131

camilo863 avatar Mar 02 '24 07:03 camilo863