做了个浏览器里跑真 Manim 的站,也整理了 Windows 本地安装与排错

Maxwin 2026-07-20 02:15 1

最近把 Windows 上安装 Manim Community 的流程重新走了一遍。很多教程的问题不是命令错,而是把 Python 、原生 DLL 、PyPI 、LaTeX 和代码错误混成了一个“安装失败”。一旦失败就从头重装,反而很难知道是哪一层坏了。


不过先说我的真实建议:如果只是刚开始学 Manim ,不要先装本地环境。 我做极坐标⋅XYZ 的直接原因,就是希望初学者打开浏览器便能运行真 Manim 0.20.1 ,而不是先过 Python/uv/VC++/MiKTeX 这套环境考试。


目前 Playground 可以匿名打开,内置示例直接 Run ;编辑器有 Python 高亮、基于真 Manim 的补全/签名/悬浮文档,渲染后可以播放、拖动逐帧查看,也能导出 MP4/GIF 。中文 TextMathTex、2D/3D 、updater 等常见场景都走浏览器适配层,Python 代码在本机浏览器的 Pyodide 沙盒中执行。


初学路径很短:打开 Playground → 选示例 → 改一个参数 → Run → 看 traceback 或预览 → 导出。站内教程还把讲解与可运行代码放在一起,适合先建立对 Scene/API 的理解。


本地环境仍然有明确价值:额外 pip 包、多文件工程、完整文件系统、批量渲染、CI 和自动化脚本。所以我把它们定义成两个阶段,而不是两个互斥产品:浏览器负责入门、试验与代码对照,本地负责长期工程。


我现在采用的原则是:每引入一个组件,就做一次最小验证。 推荐链路是:


Windows/CPU 架构
→ Python
→ uv/国内 PyPI 源
→ Manim 核心
→ VC++ Runtime (有 DLL 错误时处理)
→ MiKTeX/CTAN (需要 Tex/MathTex 时处理)
→ 第一次完整渲染

1. 先确认系统和架构


新环境建议 Windows 10/11 x64 。当前 Manim Community 0.20.1 要求 Python 3.11 以上,我在新手路径里用 Python 3.12 x64 ,主要是为了避开位数混用和一些原生依赖问题,不是说其他受支持版本一定不能用。


先运行 msinfo32 看系统类型,再确认解释器:


py -3.12 --version
py -3.12 -c "import platform; print(platform.architecture())"

Windows 7 与当前 Manim 的 Python 要求没有官方版本交集; Windows 8.1 的完整运行库链路也不适合新装。ARM64 需要逐个检查 win_arm64 wheel ,不能直接照搬 x64 教程。


2. 用 uv 隔离项目


不建议把系统 Python 、Store Python 、Anaconda 和项目 venv 混在一起。用 uv 的最小路径是:


uv init --python 3.12 manim-workspace
cd manim-workspace
uv add manim
uv run manim checkhealth

国内网络可以给 uv 配清华或中科大 PyPI 镜像。这里有个容易误判的边界:镜像只能解决包下载和索引访问,不能解决 CPU 架构不匹配、缺 wheel 、VC Runtime 缺失或 Python 代码错误。


3. 第一次渲染拆成三层


先只渲染 Circle,成功后加入 Text,最后再加入 MathTex。这样三次测试分别覆盖 Manim 核心、Pango/字体和 MiKTeX/LaTeX 。


from manim import *

class FirstScene(Scene):
def construct(self):
circle = Circle(color=BLUE)
title = Text("你好,Manim", font="Microsoft YaHei").next_to(circle, UP)
formula = MathTex(r"e^{i\pi}+1=0").next_to(circle, DOWN)
self.play(Create(circle))
self.play(Write(title))
self.play(Write(formula))
self.wait()

先注释掉 formula 两行,运行:


uv run manim -ql first_scene.py FirstScene

圆能渲染说明核心基本可用;加入 Text 后失败才去查字体/Pango ;只在 MathTex 阶段失败才去查 MiKTeX 。


4. DLL 和 LaTeX 分开处理


出现 VCRUNTIME140.dllMSVCP140.dll 或 import 阶段的 DLL load failed,先确认 Python 与依赖都是 x64 ,再从 Microsoft 官方安装或 Repair x64 VC++ Redistributable 。不要从 DLL 下载站单独捡文件放进系统目录。


只用几何图形和 Text 时可以不装 MiKTeX 。使用 TexMathTex 时,安装 Basic MiKTeX 后还需要更新宏包、允许按需安装,并检查:


latex --version
dvisvgm --version
kpsewhich standalone.cls

standalone.cls 找不到是宏包/仓库问题,dvisvgm 找不到是工具链问题,latex failed 则要看 LaTeX 日志;这些都不应该靠重装 Python 解决。


5. 我现在按这个表分流



  • 下载超时、解析卡住:PyPI/CTAN 、Python 条件、wheel

  • manim 命令找不到:项目目录、是否使用 uv run

  • DLL load failed:位数、VC Runtime 、原生扩展

  • standalone.cls / dvisvgm:MiKTeX 更新与仓库

  • SyntaxError / NameError / TypeError:按 traceback 改代码


另外做了一个浏览器里的真 Manim 环境,主要用途不是替代长期本地工程,而是先用同一段代码做对照实验:浏览器能跑、本地 import 失败,就继续查本机依赖;两边都是同一条 Python traceback ,就先修代码。


链接只放一个: https://jizuobiao.xyz/playground


如果大家在 Windows ARM64 、Server Core 、字体或 MiKTeX 非交互安装上有实际踩坑,也欢迎补充。我会把能够复现的情况继续整理进文档。

最新回复 (0)
    没有回复
* 帖子来源V2EX
返回