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

Manim运行报NameError: name 'GraphScene' is not defined如何解决

报错根因

你参考的教程基于**2020年之前的Manim 3Blue1Brown旧私有版本(manimgl早期版)**编写,你本地安装的是目前主流维护的Manim Community Edition(v0.9+ 社区版),两个版本API不兼容:

  • 旧版专属的GraphScene类在社区版中已被完全移除,不存在该类定义所以直接触发NameError
  • 旧版用类级CONFIG字典传配置、setup_axes/get_graph绘图方法、ShowCreation动画类,在社区版中要么被重构要么被重命名,直接照搬旧代码会连续触发报错。
适配新版Manim的修复代码

直接替换成下面的代码即可正常运行,注释对应你原来代码的逻辑:

from manim import *
import numpy as np

class graphx(Scene):
    def construct(self):
        # 对应原CONFIG里的坐标轴配置,直接实例化Axes组件
        axes = Axes(
            x_range=[-4, 4, 1],
            y_range=[-1, 3, 1], # 可根据你实际函数的值域调整y轴范围
            x_axis_label="$x$",
            y_axis_label="$y$",
            axis_config={"include_ticks": True}
        )
        # 对应原setup_axes逻辑,用Create动画渲染坐标轴
        self.play(Create(axes, animate=True))

        def func(x):
            # 原代码用//是整数除法,画出来的曲线会有断点,绘图用浮点除法/即可
            return ((x + 1) / 2) ** x
        # 对应原get_graph逻辑,用Axes自带的plot方法生成曲线
        graph = axes.plot(func, x_range=[-1, 1], color=YELLOW)
        # 原ShowCreation在新版中重命名为Create
        self.play(Create(graph))
        self.wait(2)
运行注意事项
  • 渲染命令和你原来使用的一致,在代码所在目录终端执行manim -pql newmanim.py graphx即可自动渲染并弹出预览视频
  • 如果你需要完全匹配教程里的写法,需要卸载当前安装的manim社区版,安装旧版3Blue1Brown维护的manimgl仓库版本,但不推荐这么做:旧版不再维护,可用资料少,大部分新的Manim教程、问题解答都基于社区版API。

内容的提问来源于stack exchange,提问作者jake is the coolest

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:01:08