- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试运行 PythonVirtualenvOperator
在dag
内在 gcloud composer
环境,但在创建虚拟环境时收到错误。谷歌搜索让我找到了https://github.com/uqfoundation/dill/issues/93但我不确定我是否明白问题到底出在哪里。
环境详细信息
镜像版本:composer-1.4.1-airflow-1.9.0Python版本:3
代码:
from airflow.operators.python_operator import PythonOperator,PythonVirtualenvOperator
from airflow.operators.bash_operator import BashOperator
from airflow import models
import traceback
import datetime
from datetime import datetime as dt
yesterday = dt.combine(dt.today() - datetime.timedelta(1), dt.min.time())
def dummy_func(**kwargs):
config=kwargs.get('config',False)
print("1")
default_dag_args = {
# Setting start date as yesterday starts the DAG immediately when it is
# detected in the Cloud Storage bucket.
'start_date':yesterday,
# To email on failure or retry set 'email' arg to your email and enable
# emailing here.
'email_on_failure': False,
'email_on_retry': False,
# If a task fails, retry it once after waiting at least 5 minutes
'retries': 0,
#'retry_delay': datetime.timedelta(minutes=5),
'project_id': 'abc'
#models.Variable.get('gcp_project')
}
try:
# [START composer_quickstart_schedule]
DAG=models.DAG(
'erised_map_dummy', #dag name
# Continue to run DAG once per day
schedule_interval=datetime.timedelta(days=1),
default_args=default_dag_args)
# [END composer_quickstart_schedule]
config={"a":1}
# INITIALIZATION
# Initializing Configurations variable
# Read from GCS, Process and Write back to GCS
Start = PythonVirtualenvOperator(
task_id="start_it",
python_callable=dummy_func,
requirements=["pandas==0.23.4","numpy","dill"],
use_dill=True,
system_site_packages=False,
#op_kwargs={'config':config},
provide_context=True,
dag=DAG
)
op_end = BashOperator(task_id='Finished', bash_command='echo Success!', dag=DAG)
Start >> op_end
except Exception as e:
traceback.print_exc()
raise(e)
# [END composer_quickstart]
错误: _pickle.PicklingError: Can't pickle <class 'jinja2.utils.MissingType'>: it's not found as jinja2.utils.MissingType
回溯堆栈:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/pickle.py", line 269, in _getattribute
obj = getattr(obj, subpath)
AttributeError: module 'jinja2.utils' has no attribute 'MissingType'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/pickle.py", line 918, in save_global
obj2, parent = _getattribute(module, name)
File "/usr/local/lib/python3.6/pickle.py", line 272, in _getattribute
.format(name, obj))
AttributeError: Can't get attribute 'MissingType' on <module 'jinja2.utils' from '/usr/local/lib/python3.6/site-packages/jinja2/utils.py'>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/airflow", line 6, in <module>
exec(compile(open(__file__).read(), __file__, 'exec'))
File "/usr/local/lib/airflow/airflow/bin/airflow", line 27, in <module>
args.func(args)
File "/usr/local/lib/airflow/airflow/bin/cli.py", line 528, in test
ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True)
File "/usr/local/lib/airflow/airflow/utils/db.py", line 50, in wrapper
result = func(*args, **kwargs)
File "/usr/local/lib/airflow/airflow/models.py", line 1583, in run
session=session)
File "/usr/local/lib/airflow/airflow/utils/db.py", line 50, in wrapper
result = func(*args, **kwargs)
File "/usr/local/lib/airflow/airflow/models.py", line 1492, in _run_raw_task
result = task_copy.execute(context=context)
File "/usr/local/lib/airflow/airflow/operators/python_operator.py", line 89, in execute
return_value = self.execute_callable()
File "/usr/local/lib/airflow/airflow/operators/python_operator.py", line 245, in execute_callable
self._write_args(input_filename)
File "/usr/local/lib/airflow/airflow/operators/python_operator.py", line 283, in _write_args
dill.dump(arg_dict, f)
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 286, in dump
pik.dump(obj)
File "/usr/local/lib/python3.6/pickle.py", line 409, in dump
self.save(obj)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 521, in save
self.save_reduce(obj=obj, *rv)
File "/usr/local/lib/python3.6/pickle.py", line 634, in save_reduce
save(state)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 521, in save
self.save_reduce(obj=obj, *rv)
File "/usr/local/lib/python3.6/pickle.py", line 634, in save_reduce
save(state)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 521, in save
self.save_reduce(obj=obj, *rv)
File "/usr/local/lib/python3.6/pickle.py", line 634, in save_reduce
save(state)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 521, in save
self.save_reduce(obj=obj, *rv)
File "/usr/local/lib/python3.6/pickle.py", line 634, in save_reduce
save(state)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 521, in save
self.save_reduce(obj=obj, *rv)
File "/usr/local/lib/python3.6/pickle.py", line 634, in save_reduce
save(state)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 521, in save
self.save_reduce(obj=obj, *rv)
File "/usr/local/lib/python3.6/pickle.py", line 634, in save_reduce
save(state)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/pickle.py", line 781, in save_list
self._batch_appends(obj)
File "/usr/local/lib/python3.6/pickle.py", line 808, in _batch_appends
save(tmp[0])
File "/usr/local/lib/python3.6/pickle.py", line 521, in save
self.save_reduce(obj=obj, *rv)
File "/usr/local/lib/python3.6/pickle.py", line 634, in save_reduce
save(state)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 521, in save
self.save_reduce(obj=obj, *rv)
File "/usr/local/lib/python3.6/pickle.py", line 634, in save_reduce
save(state)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 1377, in save_function
obj.__dict__), obj=obj)
File "/usr/local/lib/python3.6/pickle.py", line 610, in save_reduce
save(args)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/pickle.py", line 751, in save_tuple
save(element)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 893, in save_module_dict
StockPickler.save_dict(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 821, in save_dict
self._batch_setitems(obj.items())
File "/usr/local/lib/python3.6/pickle.py", line 847, in _batch_setitems
save(v)
File "/usr/local/lib/python3.6/pickle.py", line 521, in save
self.save_reduce(obj=obj, *rv)
File "/usr/local/lib/python3.6/pickle.py", line 605, in save_reduce
save(cls)
File "/usr/local/lib/python3.6/pickle.py", line 476, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/local/lib/python3.6/site-packages/dill/_dill.py", line 1321, in save_type
StockPickler.save_global(pickler, obj)
File "/usr/local/lib/python3.6/pickle.py", line 922, in save_global
(obj, module_name, name))
_pickle.PicklingError: Can't pickle <class 'jinja2.utils.MissingType'>: it's not found as jinja2.utils.MissingType
最佳答案
我将 provide_context
设置为 False
后解决了。根据文档 :param Provide_context: 如果设置为 true,Airflow 将传递一组可在您的函数中使用的关键字参数。这组 kwargs 与您可以在 jinja 模板中使用的内容完全对应。为此,您需要在函数头中定义 **kwargs。
这会导致错误。
关于python - _pickle.PicklingError : Can't pickle <class 'jinja2.utils.MissingType' >: it's not found as jinja2. utils.MissingType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073583/
我正在使用这个 python 代码 import _pickle 我得到一个 ImportError: No module named _pickle 但我无法使用 conda 或 pip insta
当使用空集成员 participants 对 EventFrame 的对象(列表)进行 pickle 时,我遇到了类似 UnicodeDecodeError 的异常。 class EventFrame
我正在尝试应用 _pickle 将数据保存到磁盘上。但是调用_pickle.dump的时候报错了 OverflowError: cannot serialize a bytes object larg
我正在使用 python3.6/。我使用 protocol=pickle.HIGHEST_PROTOCOL pickle 了我的文件 当我按如下方式加载时: with open('data.sav',
我有this pickle 文件,我正尝试使用以下 Python 脚本解开它: import _pickle as pickle pickle_file = open('bof.pkl', 'rb')
我有一个文本文件,我正尝试使用 python pickle 来挑选它。 tx b'88877343430010000000000' tx b'59343410000000000' rx b'34445
我有一个 doc2vec 模型来驱动我的推荐应用程序。我已经构建了 doc2vec 模型并保存到 s3 存储桶中。现在,当我打开 webapp 时,模型应该从 s3 加载回来,但这不会发生。我使用 A
我正在尝试将 5000 个数据元素存储在一个数组中。这 5000 个元素存储在现有文件中(因此它不是空的)。 但是我遇到了一个错误。 输入: def array(): name = 'punt
我想使用 Kafka 和 Spark 进行情感分析。我想要做的是从 Kafka 读取流数据,然后使用 Spark 对数据进行批处理。之后,我想使用我使用 Tensorflow 制作的函数情绪预测()来
我有一个很大的句子列表(约 700 万个),我想从中提取名词。 我使用 joblib 库来并行化提取过程,如下所示: import spacy from tqdm import tqdm from j
我正在尝试运行 PythonVirtualenvOperator在dag内在 gcloud composer环境,但在创建虚拟环境时收到错误。谷歌搜索让我找到了https://github.com/u
我正在尝试运行以下报告与其他用户一起运行良好的代码,但我发现了这个错误。 -- 编码:utf-8 -- 导入东西 import torch import torch.nn as nn import t
尝试通过 Spark-Submit 或 Zeppelin 运行某些代码时出现以下错误:“_pickle.PicklingError: __ newobj __ args 中的 args[0] 具有错误
import pickle class NoClass(): def __init__(self, name, level, cls, time_played): self.n
我是一名优秀的程序员,十分优秀!