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

使用Anaconda安装的GraphLab Create中SFrame.show()函数执行报错

解决GraphLab Create中show()函数的AttributeError问题

我之前在Anaconda环境里用GraphLab Create的时候也碰到过一模一样的问题——SFrame的导入、数据处理都正常,唯独调用show()就报这个AttributeError: 'NoneType' object has no attribute 'add_variable',本质原因是show()依赖的本地可视化服务端口被占用,导致服务启动失败,给你几个亲测有效的解决办法:

  • 指定未被占用的端口调用show()
    直接在show()里手动指定一个可用端口,比如选8889(避开Jupyter默认的8888):

    sf.show(port=8889)
    

    要是这个端口还是不行,换个其他的比如9999、12345之类的,一般都能解决。

  • 检查并释放被占用的默认端口
    如果你想揪出到底哪个程序占了端口,可以用命令行排查:

    • Windows系统:打开cmd,输入netstat -ano | findstr :9996(GraphLab默认端口是9996),找到对应的PID,然后用taskkill /F /PID <查到的PID>杀掉进程。
    • Mac/Linux系统:打开终端,输入lsof -i :9996,找到PID后用kill -9 <查到的PID>终止进程。
  • 提前配置GraphLab的服务端口
    在调用show()之前,先设置GraphLab的运行时配置,指定固定端口:

    import graphlab
    graphlab.set_runtime_config('GRAPHLAB_SERVER_PORT', 8890)
    sf.show()
    
  • 重启Python Kernel/conda环境
    有时候是环境里的临时进程冲突,重启Jupyter的Kernel,或者先退出当前conda环境再重新激活:

    conda deactivate
    conda activate <你的GraphLab环境名>
    

简单说下报错逻辑:show()会在本地启动一个小型Web服务来展示可视化内容,如果默认端口被占用,这个服务启动失败就会返回None,后续代码尝试调用add_variable自然就会报错啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:05:48