airflow - airflow initdb: cannot import name 'Pendulum' from 'pendulum'
问题描述
I installed airflow within one of my Anaconda envs named engdados. When I execute the command airflow initdb I'm getting the following error: 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:
Name Version Build Channel
pendulum 2.1.2 pypi_0 pypi
What I've checked so far:
Is the engdados environment activated? Yes
Is the Pendulum installed on Anaconda environment? Yes
The version of Pendulum the Anaconda shows is different of the one showed in conda list (1.4.4). Why?
I have no idea what is going on. Thanks in advance.
解决方案
在 pendulum 版本 2 中,类pendulum.Pendulum
被替换为pendulum.DateTime
.
您的气流版本需要摆 1.x,但您的环境有 2.x。
您可以通过创建新环境并安装气流 2.0(使用 pendulum 2.x)来解决此问题。如果您必须使用气流 < 2.0,则需要将摆固定到 < 2.0(例如使用 pip 约束)。
推荐阅读
- javascript - 有没有一种安全的方法来防止 exec 剥离引号?
- python - tkinter python中的标签是否有任何命令属性?
- c++ - 如何将 SSAO 应用于天空盒?
- javascript - 如何在 Angular Firebase 中修复浏览器刷新时的“TypeError:无法读取属性 'getIdToken' of null”?
- sql - 稍微修改SQL给我带来:ORA-01427:单行子查询返回多于一行
- python - concurrent.futures ThreadPoolExecutor - 线程数不匹配
- selenium - Selenium IDE 3.x - 验证变量的内容
- javascript - HTML5 音频播放器未在 ios Safari 中自动播放
- go - 如何区分哪些依赖项是可下载的?
- assembly - 我的汇编代码为字符串长度计算了一个额外的字节