首页 > 解决方案 > 在 iMac 上安装 Apache-Airflow - 气流 initdb - ImportError:无法导入名称对象

问题描述

我试图在 iMac 上安装气流

airflow initdb

我收到了这个错误

Traceback (most recent call last):
    File "/Users/admin/anaconda/bin/airflow", line 21, in <module>
      from airflow import configuration
    File "/Users/admin/anaconda/lib/python2.7/site-packages/airflow/__init__.py", line 37, in <module>
      from airflow.models import DAG
    File "/Users/admin/anaconda/lib/python2.7/site-packages/airflow/models.py", line 32, in <module>
      import dill
    File "/Users/admin/anaconda/lib/python2.7/site-packages/dill/__init__.py", line 60, in <module>
      from . import objtypes as types
    File "/Users/admin/anaconda/lib/python2.7/site-packages/dill/objtypes.py", line 16, in <module>
      from dill import objects
    ImportError: cannot import name objects

我找到了这个线程,虽然气流 initdb, ImportError: cannot import name HiveOperator,它不适用于在 iMac 上安装气流,并且错误不完全相同。但我还是试了一下。我改变了配置

# load_examples = True # default set up as True
load_examples = False # change to false to avoid airflow initdb error - But the error still there. 

但是当我运行气流 initdb 时,我仍然得到同样的错误。

标签: airflow

解决方案


您可能需要检查系统上安装的 dill 版本。0.2a1 之前的版本(特别是 0.1a1 版本)不包含“对象”,并且会抛出您在上面看到的错误。

我在我的 Mac 上创建了一个测试 conda 环境,并通过 pip 安装尝试使用各种版本的 dill 导入失败。

dill 版本 0.1a1 的结果:

(dill_test) pip install dill==0.1a1
Collecting dill==0.1a1
Installing collected packages: dill
Successfully installed dill-0.1a1
(dill_test)  python
Python 2.7.15 |Anaconda, Inc.| (default, Dec 14 2018, 13:10:39)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
>>> from dill import objects
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name objects

dill 0.2a1 或更高版本的结果(导入对象时没有错误):

(dill_test) pip uninstall dill
Uninstalling dill-0.1a1:
  Would remove:
    /Users/.../anaconda2/envs/dill_test/lib/python2.7/site-packages/dill-    0.1a1.dist-info/*
    /Users/.../anaconda2/envs/dill_test/lib/python2.7/site-packages/dill/*
Proceed (y/n)? y
  Successfully uninstalled dill-0.1a1
(dill_test) pip install dill==0.2a1
Collecting dill==0.2a1
Installing collected packages: dill
Successfully installed dill-0.2a1
(dill_test) python
Python 2.7.15 |Anaconda, Inc.| (default, Dec 14 2018, 13:10:39)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
>>> from dill import objects
>>>

https://pypi.org/project/dill/


推荐阅读