You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启动FiftyOne应用时遭遇GraphQL API错误:Unhashable type: 'StrawberryAnnotation'

启动FiftyOne应用时遇到dacite可选类型处理错误的解决办法

错误信息

File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\graphql\execution\execute.py", line 1036, in await_result
    return build_response(await result, errors)  # type: ignore
                          ^^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\graphql\execution\execute.py", line 451, in get_results
    await gather(*(results[field] for field in awaitable_fields)),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\graphql\execution\execute.py", line 535, in await_result
    self.handle_field_error(error, return_type)
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\graphql\execution\execute.py", line 569, in handle_field_error
    raise error
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\graphql\execution\execute.py", line 528, in await_result
    return_type, field_nodes, info, path, await result
                                          ^^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\strawberry\schema\schema_converter.py", line 513, in _async_resolver
    return await await_maybe(_get_result(_source, strawberry_info, **kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\strawberry\utils\await_maybe.py", line 12, in await_maybe
    return await value
           ^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\fiftyone\server\paginator.py", line 107, in paginate
    return await get_items(
           ^^^^^^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\fiftyone\server\paginator.py", line 75, in get_items
    edges.append(Edge(node=from_db(doc), cursor=str(_id)))
                           ^^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\fiftyone\server\paginator.py", line 105, in from_db
    return from_dict(cls, doc)
           ^^^^^^^^^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\fiftyone\server\utils.py", line 108, in from_dict
    return _from_dict(data_class, data, config=_dacite_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\dacite\core.py", line 72, in from_dict
    value = get_default_value_for_field(field, field_type)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\aidan\AppData\Local\Programs\Python\Python311\Lib\site-packages\dacite\dataclasses.py", line 19, in get_default_value_for_field
    elif is_optional(type_):
         ^^^^^^^^^^^^^^^^^^

解决步骤

  • 对齐依赖版本
    该错误多由依赖包版本冲突导致,尤其是dacite和FiftyOne的版本不兼容:

    1. 卸载现有冲突包:
      pip uninstall -y fiftyone dacite strawberry-graphql graphql-core
      
    2. 重新安装稳定兼容版本:
      pip install fiftyone
      
      若问题仍存在,指定dacite的兼容版本:
      pip install dacite==1.8.1
      
  • 清理FiftyOne缓存与损坏元数据
    数据集元数据或本地缓存损坏可能触发加载错误:

    1. 关闭所有FiftyOne进程,删除本地缓存目录(Windows命令):
      rmdir /s /q C:\Users\aidan\AppData\Local\fiftyone
      
    2. 重新导入数据集:
      import fiftyone as fo
      # 删除现有损坏数据集
      fo.delete_dataset("你的数据集名称")
      # 重新从目录导入(根据数据集类型调整参数)
      dataset = fo.Dataset.from_dir(
          dataset_dir="你的数据集路径",
          dataset_type=fo.types.COCODetectionDataset
      )
      dataset.save()
      
  • 验证Python版本兼容性
    确认使用的Python3.11与FiftyOne版本兼容:FiftyOne从v0.17.0开始支持Python3.11,若你的FiftyOne版本低于此,升级至最新稳定版即可。

  • 检查数据集完整性
    确认数据集的图像文件、标注文件无损坏或缺失,可尝试用一个小型测试数据集启动FiftyOne,排查是否是原数据集本身的问题。

内容的提问来源于stack exchange,提问作者aidan808

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:34:59