Как настроить Pyglet для работы с Manim в Colab?

Я пытаюсь запустить версию шейдеров Manim в Colab. Эта версия должна отображать отрендеренное видео в живом интерактивном окне, а не просто записывать mp4. Установил и импортировал все без ошибок:

from manimlib.imports import *

но получить исключение при запуске:

!python3 -m manim example_scenes.py OpeningManimExample

Media will be written to ./media/. You can change this behavior with the --media_dir flag.
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/content/manim/manim.py", line 5, in <module>
    manimlib.main()
  File "/content/manim/manimlib/__init__.py", line 11, in main
    scenes = manimlib.extract_scene.main(config)
  File "/content/manim/manimlib/extract_scene.py", line 104, in main
    scenes = get_scenes_to_render(all_scene_classes, config)
  File "/content/manim/manimlib/extract_scene.py", line 72, in get_scenes_to_render
    scene = scene_class(**scene_kwargs)
  File "/content/manim/manimlib/scene/scene.py", line 44, in __init__
    self.window = Window(self, **self.window_config)
  File "/content/manim/manimlib/window.py", line 21, in __init__
    super().__init__(**kwargs)
  File "/usr/local/lib/python3.6/dist-packages/moderngl_window/context/pyglet/window.py", line 54, in __init__
    config=config,
  File "/usr/local/lib/python3.6/dist-packages/pyglet/window/xlib/__init__.py", line 165, in __init__
    super(XlibWindow, self).__init__(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/pyglet/window/__init__.py", line 588, in __init__
    config = screen.get_best_config(config)
  File "/usr/local/lib/python3.6/dist-packages/pyglet/canvas/base.py", line 194, in get_best_config
    raise window.NoSuchConfigException()
pyglet.window.NoSuchConfigException

person Joys    schedule 27.03.2020    source источник


Ответы (1)


Colab работает в облаке.

Он не может использовать pyglet для открытия нового окна на вашем компьютере для отображения в реальном времени.

Итак, шейдерная версия невозможна. Можете ли вы успешно запустить версию mp4?

person korakot    schedule 28.03.2020
comment
Блокнот Colab с pyglet. Я могу запустить основную ветку. Вопрос в том, как запустить версию шейдеров. - person Joys; 28.03.2020
comment
Спасибо! текущий код уже расширен. Он использует vitualdisplay для эмуляции экрана. Итак, пиглет может работать, только для записи в файл. Может, если можно как-то стримить vdo, будет очень полезно. - person korakot; 28.03.2020
comment
Спасибо за Ваш ответ. Я создал виртуальный дисплей from pyvirtualdisplay import Display display = Display(visible=0, size=(960, 540)) display.start(). Но я не могу заставить его работать с манимом. - person Joys; 28.03.2020
comment
Мне нравится коллаб, который обрабатывает видео, но я не знаю, как его применить. маним. - person Joys; 28.03.2020