gpt4 book ai didi

python - pydantic 设置 : TypeError: cannot pickle '_thread.lock' object

转载 作者:行者123 更新时间:2023-12-04 08:01:59 44 4
gpt4 key购买 nike

我遇到了 pydantic.BaseSettings 的问题和 prometheus_client.Summary .
下面的代码片段在尝试执行时抛出异常:

from prometheus_client import Summary
from pydantic import BaseSettings

class Settings(BaseSettings):
app_name: str = 'any_app_name'
any_boolean: bool = False
any_summary: Summary = Summary('my_summary','My Summary')

s = Settings()
这是堆栈跟踪:
  File "/Users/XXX/workspace/src/settings_summary.py", line 4, in <module>
class Settings(BaseSettings):
File "pydantic/main.py", line 252, in pydantic.main.ModelMetaclass.__new__
File "pydantic/fields.py", line 309, in pydantic.fields.ModelField.infer
File "pydantic/fields.py", line 271, in pydantic.fields.ModelField.__init__
File "pydantic/fields.py", line 344, in pydantic.fields.ModelField.prepare
File "pydantic/fields.py", line 368, in pydantic.fields.ModelField._set_default_and_type
File "pydantic/fields.py", line 280, in pydantic.fields.ModelField.get_default
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/copy.py", line 270, in _reconstruct
state = deepcopy(state, memo)
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/copy.py", line 146, in deepcopy
y = copier(x, memo)
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/copy.py", line 230, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/copy.py", line 270, in _reconstruct
state = deepcopy(state, memo)
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/copy.py", line 146, in deepcopy
y = copier(x, memo)
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/copy.py", line 230, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/copy.py", line 161, in deepcopy
rv = reductor(4)
TypeError: cannot pickle '_thread.lock' object
删除 Summary 时行代码运行:
from pydantic import BaseSettings

class Settings(BaseSettings):
app_name: str = 'any_app_name'
any_boolean: bool = False

s = Settings()
你知道如何解决它吗?
非常感谢提前...

最佳答案

看起来您要创建 Custom Data Type

关于python - pydantic 设置 : TypeError: cannot pickle '_thread.lock' object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66419620/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com