簡體   English   中英

如何在Manim Hello World程序中修復AttributeError?

[英]How can I fix AttributeError in Manim Hello World program?

我試圖用Manim編寫Hello World程序。

我已經安裝了Manim及其必備程序,並且可以按預期從命令提示符處運行示例代碼。 此示例代碼以異常方式運行; 用戶發出一個命令,該命令不僅指定.py文件,還指定其中的單個類,並且Python執行類定義代碼,似乎沒有實例化該類。

現在我正在嘗試編寫一個獨立的.py文件,該文件通過在運行時實例化一個類來工作(我正在Visual Studio Community 2019中運行它),而不是需要外部命令。

我已經檢查了許多類似的問題,但是不幸的是,它們一般都是關於Hello World程序的,甚至涵蓋許多非Python語言。

我發現了一些AttributeError:'____'對象在搜索中沒有屬性'____'問題,包括此有用的說明( https://stackoverflow.com/a/8696339/2364796 ),但是似乎沒有什么適用於我的代碼已經明確寫過了。

我還檢查了IRC,建議在導入的代碼中觸發該問題。 但是,相同的代碼在導入到樣本中時可以正常運行,因此我必須使用不正確的代碼。

這是我的Hello World程序的當前代碼。

from manimlib.imports import *

class GreetingScript(Scene):
    def construct(self):
        characters = TextMobject("Hello World!")
        self.add(characters)

scene1 = Scene()
readthrough = GreetingScript(scene1)

這是以上代碼產生的錯誤消息。

Media will be stored in ./media\. You can change this behavior by writing a 
diff
erent directory to media_dir.txt.
Traceback (most recent call last):
  File "C:\Users\Admin\Documents\Visual Studio 
2019\Projects\PythonApplication1\
PythonApplication1\PythonApplication1.py", line 8, in <module>
    scene1 = Scene()
  File "C:\Users\Admin\PortableApps\manim-0.1.5\manimlib\scene\scene.py", 
line 3
7, in __init__
    self, **self.file_writer_config,
  File "C:\Users\Admin\PortableApps\manim- 
0.1.5\manimlib\scene\scene_file_writer
.py", line 44, in __init__
    self.init_output_directories()
  File "C:\Users\Admin\PortableApps\manim- 
0.1.5\manimlib\scene\scene_file_writer
.py", line 49, in init_output_directories
    output_directory = self.output_directory or 
self.get_default_output_director
y()
  File "C:\Users\Admin\PortableApps\manim- 
0.1.5\manimlib\scene\scene_file_writer
.py", line 80, in get_default_output_directory
    filename = os.path.basename(self.input_file_path)
AttributeError: 'SceneFileWriter' object has no attribute 'input_file_path'
Press any key to continue . . .

我希望程序的輸出是文本“ Hello World!”的顯示。 但實際輸出是AttributeError:“ SceneFileWriter”對象沒有屬性“ input_file_path”,並伴隨有上述消息的其余部分。

解決此問題的最佳方法是刪除創建scene1對象的代碼。 要使此代碼正常工作, 需要實現場景類的源即可,您可以使用以下方法生成場景:

$ python -m manim -p /path/to/source.py GreetingScript

-p標志表示在渲染場景后打開視頻。 希望對您的問題有所幫助。

from big_ol_pile_of_manim_imports import *

class makeText(Scene):
    def construct(self):
        #######Code#######
        #Making text
        first_line = TextMobject("Manim is fun")
        second_line = TextMobject("and useful")
        final_line = TextMobject("Hope you like it too!", color=BLUE)
        color_final_line = TextMobject("Hope you like it too!")

        #Coloring
        color_final_line.set_color_by_gradient(BLUE,PURPLE)

        #Position text
        second_line.next_to(first_line, DOWN)

        #Showing text
        self.wait(1)
        self.play(Write(first_line), Write(second_line))
        self.wait(1)
        self.play(FadeOut(second_line), ReplacementTransform(first_line, final_line))
        self.wait(1)
        self.play(Transform(final_line, color_final_line))
        self.wait(2)

你有嘗試過嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM