首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextMobject在Manim中没有定义

TextMobject在Manim中没有定义
EN

Stack Overflow用户
提问于 2021-02-14 10:40:20
回答 3查看 4K关注 0票数 6

我刚开始学习manim,我看到了第一个用example_scenes.py创建类的视频。当我尝试运行它时,它的意思是没有定义名称TextMobject。我该怎么办?

类我创建了:

代码语言:javascript
复制
class FirstScene(Scene):
    def construct(self):
        text=TextMobject("text")
        self.add(text) 

conda提示符中使用的代码:

代码语言:javascript
复制
python -m manim example_scenes.py FirstScene -w

请检查这个文件中的"FirstScene“类(此文件的最后一个类)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-14 11:00:50

这个错误是非常直接的。

未定义"TextMobject“

这是一个抱怨,您的TextMobject没有在代码中的任何地方定义,也没有导入。

编辑

经过额外的评论和信息之后,问题是manim库已经更新,当前版本已经重组了它的内部代码组织。您链接到的指南引用了manim的旧版本,您将在其中执行from manimlib.imports import,就好像有一个单独的imports.py一样。

但是,更新后的版本将要求您执行:manimlib import *。这是通过检查官方储存库的指南来证实的。同样,这是更新后的 examples_scene.py也来自它的官方存储库。

代码语言:javascript
复制
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

代码语言:javascript
复制
from manimlib.scene.scene import Scene

但是,如果您使用from manimlib import *,那么在不进行显式导入的情况下也会导入它。

您可以在包的__init__.py链接在这里上确认这一点

代码语言:javascript
复制
...
from manimlib.scene.scene import *
...

无论哪种方式,TextMobject都应该由您定义,或者在使用它之前导入。我建议您进行更新,然后使用上面的代码再试一次。

编辑2

根据@giac的答案,除了修改导入Scene的方式之外,TexMobject被重命名为TexTextMobject被重命名为TexText。我不会指望它仍然是真实的,也不会是唯一的改变,所以如果你在这里绊倒,试图得到一个答案,我建议你检查一下官方储存库的指南。

票数 4
EN

Stack Overflow用户

发布于 2021-02-23 15:24:14

我在whatsnew.rst文件中找到了这个以防万一

  • TexMobject重命名为TexTextMobject重命名为TexText
票数 9
EN

Stack Overflow用户

发布于 2021-03-02 15:50:40

我对manim也很陌生,也遇到了同样的问题。我发现您可以将TextMobject替换为TexText。我不知道具体的区别是什么,但它们似乎呈现的字体大小略有不同。我在使用TexText时出错了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66194538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档