AttributeError: module 'dataclasses' has no attribute 'is_dataclass'
AttributeError: module 'dataclasses' has no attribute 'is_dataclass'
我正在尝试使用 pydantic
创建一个动态模型,但它似乎连基本示例都无法获得:
from pydantic import BaseModel, create_model
MyModel = create_model('MyModel', foo="foo")
错误是:
MyModel = create_model('MyModel', foo="foo")
File "pydantic/main.py", line 972, in pydantic.main.create_model
File "pydantic/main.py", line 228, in pydantic.main.ModelMetaclass.__new__
File "pydantic/fields.py", line 488, in pydantic.fields.ModelField.infer
File "pydantic/fields.py", line 419, in pydantic.fields.ModelField.__init__
File "pydantic/fields.py", line 539, in pydantic.fields.ModelField.prepare
File "pydantic/fields.py", line 801, in pydantic.fields.ModelField.populate_validators
File "pydantic/validators.py", line 682, in find_validators
File "pydantic/dataclasses.py", line 82, in pydantic.dataclasses.is_builtin_dataclass
AttributeError: module 'dataclasses' has no attribute 'is_dataclass'
由于我使用的是poetry
,所以我使用的命令是:
poetry run python main.py
有人知道为什么会出现这样的错误吗?
原因是因为我在与 main.py
相同的文件夹中有另一个文件 dataclasses.py
并且 poetry run python main.py
自动使用了我的本地 datacalsses.py
并因此覆盖了系统 dataclasses
不知何故。这里的一个很好的教训是不要使用 class 名称作为本地模块名称。
我正在尝试使用 pydantic
创建一个动态模型,但它似乎连基本示例都无法获得:
from pydantic import BaseModel, create_model
MyModel = create_model('MyModel', foo="foo")
错误是:
MyModel = create_model('MyModel', foo="foo")
File "pydantic/main.py", line 972, in pydantic.main.create_model
File "pydantic/main.py", line 228, in pydantic.main.ModelMetaclass.__new__
File "pydantic/fields.py", line 488, in pydantic.fields.ModelField.infer
File "pydantic/fields.py", line 419, in pydantic.fields.ModelField.__init__
File "pydantic/fields.py", line 539, in pydantic.fields.ModelField.prepare
File "pydantic/fields.py", line 801, in pydantic.fields.ModelField.populate_validators
File "pydantic/validators.py", line 682, in find_validators
File "pydantic/dataclasses.py", line 82, in pydantic.dataclasses.is_builtin_dataclass
AttributeError: module 'dataclasses' has no attribute 'is_dataclass'
由于我使用的是poetry
,所以我使用的命令是:
poetry run python main.py
有人知道为什么会出现这样的错误吗?
原因是因为我在与 main.py
相同的文件夹中有另一个文件 dataclasses.py
并且 poetry run python main.py
自动使用了我的本地 datacalsses.py
并因此覆盖了系统 dataclasses
不知何故。这里的一个很好的教训是不要使用 class 名称作为本地模块名称。