m0_62382446 2022-11-05 21:40 采纳率: 100%
浏览 11
已结题

manimgl svg公式问题

img


ManimGL v1.6.1
[21:15:18] INFO     Using the default configuration file, which you can modify in `e:\pythonprogram\venv\lib\site-packages\manimlib\default_config.yml` config.py:265
           INFO     If you want to create a local configuration file, you can create a file named `custom_config.yml`, or run `manimgl --config`        config.py:266
Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "E:\PythonProgram\venv\Scripts\manimgl.exe\__main__.py", line 7, in <module>
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\__main__.py", line 22, in main
    scenes = manimlib.extract_scene.main(config)
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\extract_scene.py", line 140, in main
    scenes = get_scenes_to_render(all_scene_classes, scene_config, config)
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\extract_scene.py", line 103, in get_scenes_to_render
    fw_config["total_frames"] = compute_total_frames(scene_class, scene_config)
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\extract_scene.py", line 87, in compute_total_frames
    pre_scene.run()
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\scene\scene.py", line 91, in run
    self.construct()
  File "E:\PythonProgram\.\test\main.py", line 109, in construct
    Tex("A^2", "+", "B^2", "=", "C^2"),
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\mobject\svg\tex_mobject.py", line 188, in __init__
    super().__init__(full_string, **kwargs)
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\mobject\svg\tex_mobject.py", line 45, in __init__
    super().__init__(**kwargs)
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\mobject\svg\svg_mobject.py", line 65, in __init__
    self.init_svg_mobject()
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\mobject\svg\svg_mobject.py", line 76, in init_svg_mobject
    self.generate_mobject()
  File "E:\PythonProgram\venv\lib\site-packages\manimlib\mobject\svg\svg_mobject.py", line 92, in generate_mobject
    element_tree = ET.parse(file_path)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\xml\etree\ElementTree.py", line 1222, in parse
    tree.parse(source, parser)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\xml\etree\ElementTree.py", line 569, in parse
    source = open(source, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'E:\\PythonProgram\\media\\Tex\\ad1f74d01c9715f1.svg'

一直在报这种错误,manimgl的latex、dvisvgm、ffmpeg都重装了,也修改了yml文件中的temporory_storage,没有效果,请问各位,怎么做?
这是我的源码:

class a(Scene):
    def construct(self):
        to_isolate = ["B", "C", "=", "(", ")"]
        lines = VGroup(
            # 将多个参数传递给Tex,这些参数看起来被连接在一起作为一个表达式
            # 但整个mobject的每个submobject为其中的一个字符串
            # 例如,下面的Tex物件将有5个子物件,对应于表达式[A^2,+,B^2,=,C^2]
            Tex("A^2", "+", "B^2", "=", "C^2"),
            # 这里同理
            Tex("A^2", "=", "C^2", "-", "B^2"),
            # 或者,你可以传入关键字参数isolate,其中包含一个字符串列表
            # 这些字符串应该作为它们自己的子物件存在
            # 因此,下面的一行相当于它下面注释掉的一行
            Tex("A^2 = (C + B)(C - B)", isolate=["A^2", *to_isolate]),
            # Tex("A^2", "=", "(", "C", "+", "B", ")", "(", "C", "-", "B", ")"),
            Tex("A = \\sqrt{(C + B)(C - B)}", isolate=["A", *to_isolate])
        )
        lines.arrange(DOWN, buff=LARGE_BUFF)
        for line in lines:
            line.set_color_by_tex_to_color_map({
                "A": BLUE,
                "B": TEAL,
                "C": GREEN,
            })

        play_kw = {"run_time": 2}
        self.add(lines[0])
        # TransformMatchingTex将源和目标中具有匹配tex字符串的部分对应变换
        # 传入path_arc,使每个部分旋转到它们的最终位置,这种效果对于重新排列一个方程是很好的
        self.play(
            TransformMatchingTex(
                lines[0].copy(), lines[1],
                path_arc=90 * DEGREES,
            ),
            **play_kw
        )
        self.wait()

        self.play(
            TransformMatchingTex(lines[1].copy(), lines[2]),
            **play_kw
        )
        self.wait()
        # …这看起来很好,但由于在lines[2]中没有匹配"C^2""B^2"的tex,这些子物件会淡出
        # 而C和B两个子物件会淡入,如果我们希望C^2转到C,而B^2转到B,我们可以用key_map来指定
        self.play(FadeOut(lines[2]))
        self.play(
            TransformMatchingTex(
                lines[1].copy(), lines[2],
                key_map={
                    "C^2": "C",
                    "B^2": "B",
                }
            ),
            **play_kw
        )
        self.wait()

        # 也许我们想把^2上的指数转换成根号。目前,lines[2]将表达式A^2视为一个单元
        # 因此我们可能会需要创建同一line的新版本,该line仅分隔出A
        # 这样,当TransformMatchingTex将所有匹配的部分对应时,唯一的不匹配将是来自new_line2的"^2"
        # 和来自最终行的"\sqrt"之间的不匹配。通过传入transform_missmatches=True,它会将此"^2"转换为"\sqrt"
        new_line2 = Tex("A^2 = (C + B)(C - B)", isolate=["A", *to_isolate])
        new_line2.replace(lines[2])
        new_line2.match_style(lines[2])

        self.play(
            TransformMatchingTex(
                new_line2, lines[3],
                transform_mismatches=True,
            ),
            **play_kw
        )
        self.wait(3)
        self.play(FadeOut(lines, RIGHT))

        # 或者,如果您不想故意分解tex字符串,您可以使用TransformMatchingShapes
        # 它将尝试将源mobject的所有部分与目标的部分对齐,而不考虑每个部分中的子对象层次结构
        # 根据这些部分是否具有相同的形状(尽其所能)来自动匹配变换
        source = Text("the morse code", height=1)
        target = Text("here come dots", height=1)

        self.play(Write(source))
        self.wait()
        kw = {"run_time": 3, "path_arc": PI / 2}
        self.play(TransformMatchingShapes(source, target, **kw))
        self.wait()
        self.play(TransformMatchingShapes(target, source, **kw))
        self.wait()

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月13日
    • 创建了问题 11月5日

    悬赏问题

    • ¥15 用FDTD计算并提取光栅结构的正负一级衍射光的光功率
    • ¥30 AVL fire DVI中的Design Explorer里面的Run的Status为什么总是Terminated?哪里出问题了?需要修改哪里?
    • ¥15 有二开IOT平台code的来搞钱了。
    • ¥15 求lingo语言编程以下内容
    • ¥15 cannot import name '_MissingValues' from 'sklearn.utils._param_validation'引用smoke
    • ¥15 求PHP跨站免登录技术
    • ¥15 AVL fire DVI中的Design Explorer里面的Objectives /Constraints的scale应该怎么设置
    • ¥15 qml如何绘制三维笛卡尔坐标系并向其中添加折线?
    • ¥15 咨询一个PYTHON的问题
    • ¥15 机器学习建模调参,roc评价指标