3b1b / manim

Animation engine for explanatory math videos
MIT License
60.44k stars 5.71k forks source link

0000_temp.mp4: No such file or directory found #594

Closed Emory-Sun closed 5 years ago

Emory-Sun commented 5 years ago

I'm currently on a mac and have installed manim and have successfully run python3 -m pip install -r requirements.txt. The problem is, when I try to test manim by running one of the example scenes python3 -m manim example_scenes.py SquareToCircle -pl, it returns the following error:

Animation 0: ShowCreationSquare: 7%|▋ | 1/15 [00:00<00:01, 9.60it/s]/Users/emory_temp.sun/Documents/Manim/ManimInstall/manim_3feb/media/videos/example_scenes/480p15/partial_movie_files/SquareToCircle/00000_temp.mp4: No such file or directory

Traceback (most recent call last): File "/Users/emory.sun/Documents/Manim/ManimInstall/manim_3feb/manimlib/extract_scene.py", line 153, in main scene = SceneClass(**scene_kwargs) File "/Users/emory.sun/Documents/Manim/ManimInstall/manim_3feb/manimlib/scene/scene.py", line 54, in __init__ self.construct() File "example_scenes.py", line 81, in construct self.play(ShowCreation(square)) File "/Users/emory.sun/Documents/Manim/ManimInstall/manim_3feb/manimlib/scene/scene.py", line 449, in wrapper func(self, *args, **kwargs) File "/Users/emory.sun/Documents/Manim/ManimInstall/manim_3feb/manimlib/scene/scene.py", line 484, in play self.add_frames(self.get_frame()) File "/Users/emory.sun/Documents/Manim/ManimInstall/manim_3feb/manimlib/scene/scene.py", line 570, in add_frames self.file_writer.write_frame(frame) File "/Users/emory.sun/Documents/Manim/ManimInstall/manim_3feb/manimlib/scene/scene_file_writer.py", line 171, in write_frame self.writing_process.stdin.write(frame.tostring()) BrokenPipeError: [Errno 32] Broken pipe

I've already checked that ffmpeg is successfully installed with brew install ffmpeg. Please, if anyone has any solutions, please make them as detailed and comprehensive as possible; I am an utter novice to anything terminal-related and have only some basic skills in python. Any help will be greatly appreciated.

Edit: I have also tried changing the -pl at the end to -p, and it works, giving me a black image. So the problem lies in compiling multiple frames.

Kolloom commented 5 years ago

flag should matter not here. The output media should be a complete mp4 file with animations regardless.

files in protial_movie_files contains each individual "steps" of the manim animation, they are concatenated to produce the full animation using ffmpeg. I doubt the issue here is the ffmpeg install.

I never encountered such problem, but I don't use mac either.

Have you installed the other dependencies? https://github.com/3b1b/manim/blob/master/docs/source/installation/mac.rst

Emory-Sun commented 5 years ago

I reinstalled everything just to make sure, and I think I didn't run pip install manimlib the first time through. However, I'm now getting the error message No module named 'manimlib.continual_animation'.

Full error message: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/Users/emory.sun/Documents/Manim/ManimInstall/manim_3feb/manim.py", line 9, in <module> config = manimlib.config.get_configuration(args) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/manimlib/config.py", line 158, in get_configuration module = get_module(args.file) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/manimlib/config.py", line 153, in get_module spec.loader.exec_module(module) File "<frozen importlib._bootstrap_external>", line 728, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "example_scenes.py", line 3, in <module> from big_ol_pile_of_manim_imports import * File "/Users/emory.sun/Documents/Manim/ManimInstall/manim_3feb/big_ol_pile_of_manim_imports.py", line 35, in <module> from manimlib.continual_animation.continual_animation import * ModuleNotFoundError: No module named 'manimlib.continual_animation'

Kolloom commented 5 years ago

should have been pip3 install manimlib

I see /Manim/ManimInstall/manim_3feb/big_ol_pile_of_manim_imports.py

If you are running the latest version this wouldn't be there.

How did you install and run the program ?

python3 -m manim is for running from git repository. If you are using the pypi install, there should be a manim binary that you can directly run from command line.

Emory-Sun commented 5 years ago

I ran pip3 install manimlib with no success again.

I'm not using the latest version of manim; I'm using the February 3rd version, as recommended by the video tutorials made for manim.

I'm not sure what you meant by the pypi install, or what you mean by a manim binary, but I installed the dependencies for manim via brew install ffmpeg and brew install sox and so forth. Then, in manim_3feb (which is essentially just the github clone renamed), I ran python3 -m pip install -r requirements.txt, followed by python3 -m pip install pyreadline and python3 -m pip install pydub. Then, upon trying to run python3 -m manim example_scenes.py SquareToCircle -pl, I got the error in the first comment. So then I ran pip3 install manimlib (I'm in the same directory), with no success.

Elteoremadebeethoven commented 5 years ago

If you use manimlib with pip then you must use the most recent version, and render the videos as: manim example_scenes.py SqureTo ....

But if you want to use the February 3 version, you should not have it installed with pip because it generates conflicts.

Elteoremadebeethoven commented 5 years ago

See #243

Emory-Sun commented 5 years ago

Okay, I deleted the February 3 version and installed the current version. Installed manimlib via pip3 install manimlib. Everything works fine now. Thanks for everyone's help!