由于来自未来包的 ValueError,Airflow 无法启动
Airflow fails to start due to a ValueError coming from the future package
我以前能够从我的特定 anaconda 环境中 运行 airflow webserver
和 airflow scheduler
,但是现在当我 运行 这些命令时,我得到一个 ValueError 并且都没有服务器启动。
错误如下:
(airflow_test) guy-mbp:airflow guy$ airflow webserver
Traceback (most recent call last):
File "/Users/guy/miniconda3/envs/airflow_test/bin/airflow", line 25, in <module>
from airflow.configuration import conf
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/__init__.py", line 31, in <module>
from airflow.utils.log.logging_mixin import LoggingMixin
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/utils/__init__.py", line 24, in <module>
from .decorators import apply_defaults as _apply_defaults
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/utils/decorators.py", line 34, in <module>
from airflow import settings
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/settings.py", line 36, in <module>
from airflow.configuration import conf, AIRFLOW_HOME, WEBSERVER_CONFIG # NOQA F401
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/configuration.py", line 29, in <module>
from future import standard_library
ValueError: source code string cannot contain null bytes
使用的python版本是3.7.5,apache-airflow版本是1.10.6。
我最近下载了一些新的包到环境中。他们会不会导致这个问题出现?
我发现是什么导致了我的问题。
当前版本的 tensorflow 缺少一个函数,tokenizer_from_json
。此功能在 keras.preprocessing.text
中可用,但在 tensorflow.keras.preprocessing.text
中不可用。为了尝试获得我安装了 keras 的功能。安装导致keras和tensorflow冲突,conda解决的很差。冲突导致了上面问题的错误。
为了解决这个问题,我首先使用以下命令保存了环境文件
conda env export > environment.yml
然后我使用
删除了环境
conda env remove --name airflow_test
然后我在 ananconda 中创建了一个新环境并安装了除 keras 之外我需要的所有包。
深入研究 tensorflow 后,我发现当我安装 tensorflow 时,keras 包在某种程度上作为依赖项安装,并且可以通过 keras_preprocessing
获得,可以像这样使用
from keras_preprocessing.text import tokenizer_from_json
希望这对某人有所帮助。
我以前能够从我的特定 anaconda 环境中 运行 airflow webserver
和 airflow scheduler
,但是现在当我 运行 这些命令时,我得到一个 ValueError 并且都没有服务器启动。
错误如下:
(airflow_test) guy-mbp:airflow guy$ airflow webserver
Traceback (most recent call last):
File "/Users/guy/miniconda3/envs/airflow_test/bin/airflow", line 25, in <module>
from airflow.configuration import conf
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/__init__.py", line 31, in <module>
from airflow.utils.log.logging_mixin import LoggingMixin
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/utils/__init__.py", line 24, in <module>
from .decorators import apply_defaults as _apply_defaults
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/utils/decorators.py", line 34, in <module>
from airflow import settings
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/settings.py", line 36, in <module>
from airflow.configuration import conf, AIRFLOW_HOME, WEBSERVER_CONFIG # NOQA F401
File "/Users/guy/miniconda3/envs/airflow_test/lib/python3.7/site-packages/airflow/configuration.py", line 29, in <module>
from future import standard_library
ValueError: source code string cannot contain null bytes
使用的python版本是3.7.5,apache-airflow版本是1.10.6。
我最近下载了一些新的包到环境中。他们会不会导致这个问题出现?
我发现是什么导致了我的问题。
当前版本的 tensorflow 缺少一个函数,tokenizer_from_json
。此功能在 keras.preprocessing.text
中可用,但在 tensorflow.keras.preprocessing.text
中不可用。为了尝试获得我安装了 keras 的功能。安装导致keras和tensorflow冲突,conda解决的很差。冲突导致了上面问题的错误。
为了解决这个问题,我首先使用以下命令保存了环境文件
conda env export > environment.yml
然后我使用
删除了环境conda env remove --name airflow_test
然后我在 ananconda 中创建了一个新环境并安装了除 keras 之外我需要的所有包。
深入研究 tensorflow 后,我发现当我安装 tensorflow 时,keras 包在某种程度上作为依赖项安装,并且可以通过 keras_preprocessing
获得,可以像这样使用
from keras_preprocessing.text import tokenizer_from_json
希望这对某人有所帮助。