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

运行Manim示例时遭遇IndexError的解决方法求助

问题描述

刚学Manim,Python基础薄弱,运行Manim Kindergarten示例代码manimgl example_scenes.py OpeningManimExample时触发索引越界错误,报错指向vectorized_mobject.py文件的has_new_path_started方法,具体错误为:

IndexError: index -3 is out of bounds for axis 0 with size 0

完整报错栈如下:

Traceback (most recent call last):
  File "D:\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "D:\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "D:\Python310\Scripts\manimgl.exe\__main__.py", line 7, in <module>
  File "C:\Users\10447\Desktop\manim\manimlib\__main__.py", line 25, in main
    scene.run()
  File "C:\Users\10447\Desktop\manim\manimlib\scene\scene.py", line 148, in run
    self.construct()
  File "C:\Users\10447\Desktop\manim\.\example_scenes.py", line 14, in construct
    intro_words = Text("""
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\text_mobject.py", line 425, in __init__
    super().__init__(
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\text_mobject.py", line 130, in __init__
    super().__init__(text, height=height, **kwargs)
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\string_mobject.py", line 68, in __init__
    super().__init__(
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\svg_mobject.py", line 76, in __init__
    self.init_svg_mobject()
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\svg_mobject.py", line 104, in init_svg_mobject
    submobs = self.mobjects_from_file(self.get_file_path())
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\string_mobject.py", line 115, in mobjects_from_file
    submobs = super().mobjects_from_file(file_path)
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\svg_mobject.py", line 132, in mobjects_from_file
    return self.mobjects_from_svg(svg)
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\svg_mobject.py", line 187, in mobjects_from_svg
    mob = self.path_to_mobject(shape)
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\svg_mobject.py", line 240, in path_to_mobject
    return VMobjectFromSVGPath(path, **self.path_string_config)
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\svg_mobject.py", line 306, in __init__
    super().__init__(**kwargs)
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\types\vectorized_mobject.py", line 113, in __init__
    super().__init__(**kwargs)
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\mobject.py", line 110, in __init__
    self.init_points()
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\svg_mobject.py", line 314, in init_points
    self.handle_commands()
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\svg\svg_mobject.py", line 352, in handle_commands
    if self.has_new_path_started():
  File "C:\Users\10447\Desktop\manim\manimlib\mobject\types\vectorized_mobject.py", line 502, in has_new_path_started
    return self.consider_points_equal(points[-3], points[-2])
IndexError: index -3 is out of bounds for axis 0 with size 0
解决方案

这个错误本质是解析SVG文本路径时生成了空的点集合,大概率和字体、版本兼容性有关,按以下步骤排查:

  • 检查并替换字体
    示例代码里的Text可能调用了系统未安装的字体,导致SVG路径生成异常。修改example_scenes.py中的Text初始化代码,指定系统已安装的字体,比如:

    intro_words = Text("""你的文本内容""", font="Arial")
    

    或者直接用ManimGL内置的Tex替代Text,TeX渲染对字体兼容性更好:

    intro_words = Tex("""你的文本内容""")
    
  • 调整Python版本
    Python3.10和旧版ManimGL存在兼容性问题,建议降级到Python3.8或3.9,这两个版本是ManimGL稳定支持的版本。

  • 修复vectorized_mobject.py代码
    直接修改报错方法,避免空列表索引:找到C:\Users\10447\Desktop\manim\manimlib\mobject\types\vectorized_mobject.py文件的has_new_path_started方法,修改为:

    def has_new_path_started(self):
        points = self.points
        if len(points) < 3:
            return True
        return self.consider_points_equal(points[-3], points[-2])
    

    当点集合长度不足3时直接返回True,避免索引越界。

  • 重新克隆ManimGL仓库
    若本地ManimGL代码存在损坏,删除当前manim文件夹,重新克隆官方仓库并安装:

    git clone https://github.com/3b1b/manim.git
    cd manim
    pip install -e .
    

    之后再运行示例代码。

内容的提问来源于stack exchange,提问作者拉格朗日插值多项式

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:50:17