【问题标题】:Cannot init the db for Airflow无法为 Airflow 初始化数据库
【发布时间】:2023-04-08 23:44:01
【问题描述】:

我有一些启动 Apache Airflow 的经验,但是当我尝试使用 airflow db init 命令时出现错误。错误如下。我正在使用 Python 3.8 在虚拟环境上运行 Airflow。任何帮助将不胜感激。我不确定是否理解这个错误,因为我在过去没有导入任何 _cffi_backend 模块的情况下成功地初始化了数据库。

错误:

airflow) airflow@26c8ed88c008:~/airflow$ airflow db init
Traceback (most recent call last):
  File "/home/airflow/.local/bin/airflow", line 8, in <module>
    sys.exit(main())
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/__main__.py", line 40, in main
    args.func(args)
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/cli/cli_parser.py", line 47, in command
    func = import_string(import_path)
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/utils/module_loading.py", line 32, in import_string
    module = import_module(module_path)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/cli/commands/db_command.py", line 24, in <module>
    from airflow.utils import cli as cli_utils, db
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/utils/db.py", line 26, in <module>
    from airflow.jobs.base_job import BaseJob  # noqa: F401
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/jobs/__init__.py", line 19, in <module>
    import airflow.jobs.backfill_job
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/jobs/backfill_job.py", line 29, in <module>
    from airflow import models
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/models/__init__.py", line 20, in <module>
    from airflow.models.baseoperator import BaseOperator, BaseOperatorLink
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/models/baseoperator.py", line 59, in <module>
    from airflow.models.taskinstance import Context, TaskInstance, clear_task_instances
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/models/taskinstance.py", line 57, in <module>
    from airflow.models.variable import Variable
  File "/home/airflow/.local/lib/python3.8/site-packages/airflow/models/variable.py", line 24, in <module>
    from cryptography.fernet import InvalidToken as InvalidFernetToken
  File "/usr/lib/python3/dist-packages/cryptography/fernet.py", line 17, in <module>
    from cryptography.hazmat.primitives import hashes, padding
  File "/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/padding.py", line 13, in <module>
    from cryptography.hazmat.bindings._padding import lib
ModuleNotFoundError: No module named '_cffi_backend'

【问题讨论】:

    标签: airflow


    【解决方案1】:

    Airflow 2 对 cryptography 模块的安装和运行有严格的要求。所以你必须正确安装它。有一些 Linux 发行版需要添加一些额外的软件包才能使其正常工作。

    您可以查看此查询和类似问题,并且可能会了解如何干净地安装或重新安装密码学。

    No module named _cffi_backend

    【讨论】:

      【解决方案2】:

      查看cryptography的安装文档:https://cryptography.io/en/latest/installation/

      如果您使用的是 Alpine,请确保安装以下内容:

      $ sudo apk add gcc musl-dev python3-dev libffi-dev openssl-dev cargo
      

      对于 Debian/buster 也是如此:

      $ sudo apt-get install build-essential libssl-dev libffi-dev \
          python3-dev cargo
      

      检查他们的installation guide 以获取其他发行版并再次运行airflow db init

      【讨论】:

        猜你喜欢
        • 2023-02-07
        • 1970-01-01
        • 2019-08-08
        • 1970-01-01
        • 2022-01-18
        • 2017-05-11
        • 2021-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多