Skip to content

[Bug] Devcontainer default Python/PATH points outside the pinned Manim runtime #14

Description

@alonshoa

Summary

The devcontainer image contains the expected pinned Manim runtime under /opt/venv, but the default command environment resolves python to /usr/local/bin/python. That interpreter does not have the project runtime dependencies installed, so the documented/default post-create style command fails unless /opt/venv/bin/python and /opt/venv/bin are used explicitly.

Observed behavior

Running the doctor flow with the default python inside the built devcontainer fails:

python -m pip install --no-deps -e .
python -m manim_studio.cli doctor --catalog

Observed failures include:

  • ModuleNotFoundError: No module named 'yaml'
  • Python import: manim: No module named 'manim'
  • Python import: manim_slides: No module named 'manim_slides'
  • Manim CLI: manim was not found on PATH
  • Manim Slides CLI: manim-slides was not found on PATH

Expected behavior

The devcontainer default shell and post-create command should use the pinned runtime where Manim Studio dependencies are available, so this should pass without manually specifying /opt/venv/bin/python or patching PATH per command.

Verification

The same checks pass when run with the pinned venv explicitly:

PATH=/opt/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
  /opt/venv/bin/python -m manim_studio.cli doctor --catalog

With that environment:

  • Manim 0.20.1: OK
  • manim-slides 5.6.0: OK
  • FFmpeg, LaTeX, XeLaTeX, dvisvgm, Hebrew font: OK
  • strict catalog validation: OK, 5 scenes
  • python -m unittest discover -s tests -v: OK, 64 tests
  • real review renders for examples/square_to_circle and examples/basic_slide: OK, smoke render and contact sheet generated
  • real final render for examples/square_to_circle: OK
  • real build examples --profile review: OK

Likely fix

Update .devcontainer/Dockerfile and/or .devcontainer/devcontainer.json so the default environment prepends /opt/venv/bin to PATH, and set VS Code / post-create commands to use /opt/venv/bin/python or a shell where python resolves to the venv interpreter.

Also note: pytest is not installed in the devcontainer. CI uses python -m unittest discover -s tests -v, which currently passes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions