TextMobject 未在 Manim 中定义
TextMobject is not defined in Manim
我刚开始学习 manim,我看到了我们在 example_scenes.py 中创建 class 的第一个视频。当我尝试 运行ning 时,它说名称 TextMobject
未定义。我该怎么办?
Class 我创建了:
class FirstScene(Scene):
def construct(self):
text=TextMobject("text")
self.add(text)
conda提示中使用的代码:
python -m manim example_scenes.py FirstScene -w
请检查 this file class“FirstScene”(此文件的最后一个 class),我正在尝试 运行。
错误很简单。
"TextMobject" is not defined
这是对您的投诉 TextMobject
没有在您的代码中的任何地方定义,也没有被导入。
编辑
在补充评论和信息后,问题是 manim
库已更新,当前版本已重组其内部代码组织。您链接到的指南引用了 manim
的旧版本,您可以在其中执行 from manimlib.imports import
,就好像有一个单独的 imports.py
.
然而,更新版本将要求您执行:manimlib import *
。这通过检查 official repository's guide. As well, this is the updated examples_scene.py
再次从其官方存储库中得到确认。
from manimlib import *
class FirstScene(Scene):
def construct(self):
text=TextMobject("text")
self.add(text)
如果它抱怨 Scene
未找到,请检查您是否安装了最新版本的软件包(如果您使用的是过时版本,请再次 git clone
并重新安装)。如果您想显式导入它,最新版本指向 Scene
位于此位置 (https://github.com/3b1b/manim/blob/master/manimlib/scene/scene.py),因此您的导入路径将为 manimlib.scene.scene
:
from manimlib.scene.scene import Scene
但是,如果您使用 from manimlib import *
,那么即使您不进行显式导入,它也会被导入。
您可以在包裹的 __init__.py
、linked here:
上确认这一点
...
from manimlib.scene.scene import *
...
无论如何,TextMobject
要么由您定义,要么在您使用之前导入。我建议您进行更新,然后使用上面的代码重试。
编辑 2
除了导入方式的变化 Scene
,根据@giac 的回答,TexMobject
重命名为 Tex
,TextMobject
重命名为 TexText
。我不会指望它仍然是正确的或者是唯一的变化所以我建议你检查 official repository 的指南如果你偶然发现这里试图得到答案。
为了以防万一,我在文件中找到了这个 whatsnew.rst
TexMobject
重命名为Tex
,TextMobject
重命名为TexText
我对 manim 也很陌生,运行 对这个完全相同的问题也很陌生。我发现您可以将 TextMobject
替换为 Tex
或 Text
。我不确定到底有什么区别,但它们的字体大小似乎略有不同。我在尝试使用 TexText
.
时遇到错误
我刚开始学习 manim,我看到了我们在 example_scenes.py 中创建 class 的第一个视频。当我尝试 运行ning 时,它说名称 TextMobject
未定义。我该怎么办?
Class 我创建了:
class FirstScene(Scene):
def construct(self):
text=TextMobject("text")
self.add(text)
conda提示中使用的代码:
python -m manim example_scenes.py FirstScene -w
请检查 this file class“FirstScene”(此文件的最后一个 class),我正在尝试 运行。
错误很简单。
"TextMobject" is not defined
这是对您的投诉 TextMobject
没有在您的代码中的任何地方定义,也没有被导入。
编辑
在补充评论和信息后,问题是 manim
库已更新,当前版本已重组其内部代码组织。您链接到的指南引用了 manim
的旧版本,您可以在其中执行 from manimlib.imports import
,就好像有一个单独的 imports.py
.
然而,更新版本将要求您执行:manimlib import *
。这通过检查 official repository's guide. As well, this is the updated examples_scene.py
再次从其官方存储库中得到确认。
from manimlib import *
class FirstScene(Scene):
def construct(self):
text=TextMobject("text")
self.add(text)
如果它抱怨 Scene
未找到,请检查您是否安装了最新版本的软件包(如果您使用的是过时版本,请再次 git clone
并重新安装)。如果您想显式导入它,最新版本指向 Scene
位于此位置 (https://github.com/3b1b/manim/blob/master/manimlib/scene/scene.py),因此您的导入路径将为 manimlib.scene.scene
:
from manimlib.scene.scene import Scene
但是,如果您使用 from manimlib import *
,那么即使您不进行显式导入,它也会被导入。
您可以在包裹的 __init__.py
、linked here:
...
from manimlib.scene.scene import *
...
无论如何,TextMobject
要么由您定义,要么在您使用之前导入。我建议您进行更新,然后使用上面的代码重试。
编辑 2
除了导入方式的变化 Scene
,根据@giac 的回答,TexMobject
重命名为 Tex
,TextMobject
重命名为 TexText
。我不会指望它仍然是正确的或者是唯一的变化所以我建议你检查 official repository 的指南如果你偶然发现这里试图得到答案。
为了以防万一,我在文件中找到了这个 whatsnew.rst
TexMobject
重命名为Tex
,TextMobject
重命名为TexText
我对 manim 也很陌生,运行 对这个完全相同的问题也很陌生。我发现您可以将 TextMobject
替换为 Tex
或 Text
。我不确定到底有什么区别,但它们的字体大小似乎略有不同。我在尝试使用 TexText
.