由于debian 9上的命令行,我从GitHub安装了Apache airflow 1.9:pip install git+https://github.com/apache/incubator-airflow.git@v1-9-stable
但是,我在Fernet引起的airflow initdb
期间出错了,你知道如何解决这个问题吗?
INFO [alembic.runtime.migration] Running upgrade 947454bf1dff -> d2ae31099d61, Increase text size for MySQL (not relevant for other DBs' text types)
[2017-12-27 17:19:24,586] {models.py:643} ERROR - Failed to load fernet while encrypting value, using non-encrypted value.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/airflow/models.py", line 639, in set_extra
fernet = get_fernet()
File "/usr/local/lib/python2.7/dist-packages/airflow/models.py", line 103, in get_fernet
raise AirflowException('Failed to import Fernet, it may not be installed')
AirflowException: Failed to import Fernet, it may not be installed
[2017-12-27 17:19:24,601] {models.py:643} ERROR - Failed to load fernet
如何从我之前使用GitHub的pip命令安装pip install apache-airflow[gcp-api]
中指定extrapackage?
如何安装最新的1.9.0RC?我有一个断言错误。
答案 0 :(得分:7)
标记为好的答案有一个断开的链接,如果你像我一样落在这里并继续破坏,这些步骤对我有用:
pip install cryptography
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
airflow.cfg
,fernet_key = YOUR_GENERATED_KEY
答案 1 :(得分:1)
在从源代码安装期间,您必须替换airflow.cfg中的fernet_key,例如您可以在文档here中找到。
答案 2 :(得分:0)
在apache-airflow文档中,生成fernet密钥的脚本显然是错误的。 它说要使用以下脚本。
from cryptography.fernet import Fernet
fernet_key= Fernet.generate_key()
print(fernet_key) # your fernet_key, keep it in secured place!
但它在“气流initdb”中引发了例外情况。命令。
要解决这个问题而不是Fernet.generate_key()
使用Fernet.generate_key().decode()
,如@skozz答案中所示。