简体   繁体   English

airflow initdb:无法从“钟摆”导入名称“钟摆”

[英]airflow initdb: cannot import name 'Pendulum' from 'pendulum'

I installed airflow within one of my Anaconda envs named engdados.我在名为 engdados 的 Anaconda 环境之一中安装了 airflow。 When I execute the command airflow initdb I'm getting the following error: airflow initdb: cannot import name 'Pendulum' from 'pendulum' .当我执行命令 airflow initdb 我收到以下错误: airflow initdb: cannot import name 'Pendulum' from 'pendulum' The full trace back is shown below:完整的追溯如下所示:

(engdados) guilherme@Athena-LNX:~$ airflow initdb
Traceback (most recent call last):
  File "/home/guilherme/anaconda3/envs/engdados/bin/airflow", line 25, in <module>
    from airflow.configuration import conf
  File "/home/guilherme/anaconda3/envs/engdados/lib/python3.8/site-packages/airflow/__init__.py", line 47, in <module>
    settings.initialize()
  File "/home/guilherme/anaconda3/envs/engdados/lib/python3.8/site-packages/airflow/settings.py", line 403, in initialize
    configure_adapters()
  File "/home/guilherme/anaconda3/envs/engdados/lib/python3.8/site-packages/airflow/settings.py", line 319, in configure_adapters
    from pendulum import Pendulum
ImportError: cannot import name 'Pendulum' from 'pendulum' (/home/guilherme/anaconda3/envs/engdados/lib/python3.8/site-packages/pendulum/__init__.py)
(engdados) guilherme@Athena-LNX:~$ service start mysql$
start: unrecognized service
(engdados) guilherme@Athena-LNX:~$ service mysql start$
Usage: /etc/init.d/mysql start|stop|restart|reload|force-reload|status|bootstrap
(engdados) guilherme@Athena-LNX:~$ airflow initdb
Traceback (most recent call last):
  File "/home/guilherme/anaconda3/envs/engdados/bin/airflow", line 25, in <module>
    from airflow.configuration import conf
  File "/home/guilherme/anaconda3/envs/engdados/lib/python3.8/site-packages/airflow/__init__.py", line 47, in <module>
    settings.initialize()
  File "/home/guilherme/anaconda3/envs/engdados/lib/python3.8/site-packages/airflow/settings.py", line 403, in initialize
    configure_adapters()
  File "/home/guilherme/anaconda3/envs/engdados/lib/python3.8/site-packages/airflow/settings.py", line 319, in configure_adapters
    from pendulum import Pendulum
ImportError: cannot import name 'Pendulum' from 'pendulum' (/home/guilherme/anaconda3/envs/engdados/lib/python3.8/site-packages/pendulum/__init__.py)

The problem is: the pendulum is installed!问题是:摆锤装好了! When I execute the conda list command I can see the Pendulum there as follows:当我执行conda list命令时,我可以看到 Pendulum 如下:

 Name                    Version                   Build  Channel

pendulum                  2.1.2                    pypi_0    pypi

What I've checked so far:到目前为止我检查过的内容:

Is the engdados environment activated? engdados 环境是否激活? Yes是的

Is the Pendulum installed on Anaconda environment? Pendulum 是否安装在 Anaconda 环境中? Yes是的

The version of Pendulum the Anaconda shows is different of the one showed in conda list (1.4.4). Anaconda 显示的 Pendulum 版本与 conda 列表 (1.4.4) 中显示的版本不同。 Why?为什么?

I have no idea what is going on.我不知道发生了什么。 Thanks in advance.提前致谢。

In pendulum version 2, the class pendulum.Pendulum is replaced with pendulum.DateTime .在 pendulum 版本 2 中, class pendulum.Pendulumpendulum.DateTime替换。

Your version of airflow is expecting pendulum 1.x but your environment has 2.x.您的 airflow 版本需要摆 1.x,但您的环境有 2.x。

You may be able to fix this by making a new env and installing airflow 2.0 (which uses pendulum 2.x).您可以通过创建新环境并安装 airflow 2.0(使用 pendulum 2.x)来解决此问题。 If you must use airflow < 2.0, you will need to pin pendulum to < 2.0 (eg using pip constraints).如果您必须使用 airflow < 2.0,则需要将钟摆固定到 < 2.0(例如使用 pip 约束)。

Also if you using Pendulum in your code, for example in custom Operators you can add此外,如果您在代码中使用 Pendulum,例如在自定义运算符中,您可以添加

try:
    from pendulum import DateTime as Pendulum
except ImportError:
    from pendulum import Pendulum

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 airflow initdb:ImportError:无法导入名称“HTMLString” - airflow initdb: ImportError: cannot import name 'HTMLString' 虽然气流initdb,ImportError:无法导入名称HiveOperator - While airflow initdb, ImportError: cannot import name HiveOperator 运行气流 initdb 时无法导入名称“IncorrectSchemaTypeError” - cannot import name 'IncorrectSchemaTypeError while running airflow initdb 在iMac上安装Apache-Airflow-Airflow InitDB-ImportError:无法导入名称对象 - Install Apache-Airflow on iMac - airflow initdb - ImportError: cannot import name objects Airflow:自定义日期:适用于日期时间,但不适用于钟摆 - Airflow : Custom dates : Works fine with datetime but not with pendulum Docker 中的 airflow initdb 抛出 ImportError: cannot import name 'import_string' - airflow initdb in Docker throws ImportError: cannot import name 'import_string' airflow安装无法initdb - airflow install cannot initdb 熊猫的气流错误:AttributeError:&#39;Pendulum&#39;对象没有属性&#39;nanosecond&#39; - Airflow error with pandas: AttributeError: 'Pendulum' object has no attribute 'nanosecond' Airflow 2 - ImportError:无法从“airflow.operators”导入名称“BashOperator” - Airflow 2 - ImportError: cannot import name 'BashOperator' from 'airflow.operators' Dag 依赖插件:错误:无法从“airflow”导入名称“conf” - Dag dependency Plug in : error : cannot import name 'conf' from 'airflow'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM