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

ImportError:无法从'graphs'导入'Sonnet'的其他解决方案咨询

问题描述

运行代码:

import graph_nets as gn

出现错误:

ImportError: cannot import name 'Sonnet' from 'graphs'

错误根源是sonnet包中的一行代码:from graphs import Sonnet, D3Graph, MatplotGraph。

尝试过常规方案:

pip uninstall sonnet
pip install dm-sonnet

但无效,执行pip install dm-sonnet提示requirement already satisfied;卸载sonnet后运行代码,又出现:

module 'sonnet' has no attribute '__version__'
可行解决方案
  • 排查本地/第三方包冲突

    1. 检查当前工作目录下是否存在graphs.py文件或graphs文件夹,若有则重命名或删除,避免干扰包的正常导入。
    2. 执行pip list查看是否有其他名为graphs的第三方包,如有则卸载:pip uninstall -y graphs。
  • 彻底清理并重装适配版本

    1. 卸载所有sonnet相关包:
      pip uninstall -y sonnet dm-sonnet
      
    2. 清理pip缓存:
      pip cache purge
      
    3. 安装与graph_nets兼容的dm-sonnet版本(建议选择v1.x系列,比如1.3.0):
      pip install dm-sonnet==1.3.0 graph_nets
      
  • 使用虚拟环境隔离依赖

    1. 创建并激活新的虚拟环境:
      # 创建虚拟环境
      python -m venv graph_nets_env
      # Windows系统激活
      graph_nets_env\Scripts\activate
      # Linux/macOS系统激活
      source graph_nets_env/bin/activate
      
    2. 在虚拟环境中重新安装依赖:
      pip install graph_nets dm-sonnet
      
  • 验证导入路径正确性
    执行以下代码查看sonnet的安装路径,确认是否为dm-sonnet的正确路径:

    import sonnet
    print(sonnet.__file__)
    

    如果路径指向旧的sonnet包而非dm-sonnet,则手动删除该路径下的sonnet文件夹,再重新安装dm-sonnet。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:35:54