3b1b / 3b1b/manim

Broken pipe error but not because FFMPEG, in stead `permission denied`

未關閉
#1,182 7 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
93.9k
分支
7.7k
平均合併
2 天 13 小時
30 天內合併 PR
4

描述

I have been working with MANIM quite some time now and it all worked well. I haven't worked on it for about two weeks and all of the sudden (with no serious changes on either manim or computer) I run into an error when I try to compile a video.

I get the following:
```

PS C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim> py -m manim .\example_scenes.py SquareToCircle -pl
Media will be written to ./media\. You can change this behavior with the --media_dir flag.
Animation 0: ShowCreationSquare: 7%|########7
1/15 [00:00<00:02, 5.89it/s]C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim\media\videos\example_scenes\480p15\partial_movie_files\SquareToCircle\00000_temp.mp4: Permission denied

Traceback (most recent call last):
File "C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim\manimlib\extract_scene.py", line 155, in main
scene = SceneClass(**scene_kwargs)
File "C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim\manimlib\scene\scene.py", line 53, in __init__
self.construct()
File ".\example_scenes.py", line 83, in construct
self.play(ShowCreation(square))
File "C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim\manimlib\scene\scene.py", line 406, in wrapper
func(self, *args, **kwargs)
File "C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim\manimlib\scene\scene.py", line 463, in play
self.progress_through_animations(animations)
File "C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim\manimlib\scene\scene.py", line 439, in progress_through_animations
self.add_frames(self.get_frame())
File "C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim\manimlib\scene\scene.py", line 543, in add_frames
self.file_writer.write_frame(frame)
File "C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim\manimlib\scene\scene_file_writer.py", line 186, in write_frame
self.writing_process.stdin.write(frame.tostring())
BrokenPipeError: [Errno 32] Broken pipe
```
Now I have found other issues regarding the Broken Pipe issue, but as far as I can tell, this was always because of the FFMPEG codec. But in the above we find:

`1/15 [00:00<00:02, 5.89it/s]C:\Users\steve\OneDrive\Documenten\Nerds\Manim\manim\media\videos\example_scenes\480p15\partial_movie_files\SquareToCircle\00000_temp.mp4: Permission denied`

As if this map is unreachable. I already tried to change the MEDIA DIR, but same error occurs. Also, when I render an image, so use `-ps`, no error occurs at all.

Any thoughts?

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

該錯誤發生在 manimlib/scene/scene_file_writer.py 的第 186 行寫入 frames 時。permission denied 訊息表示 media 目錄或臨時文件不可寫入。請先檢查 media 目錄上的文件權限和鎖,尤其是在 Windows 配合 OneDrive 時。查看寫入程序是如何被 spawn 的,並確保臨時文件路徑可存取。在 media 目錄中寫入文件的簡單測試可能有助於診斷此問題。

由索引模型根據 Issue 內容生成。

評估

領域
backend
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。