mujoco-py
mujoco-py 是一个让开发者能在 Python 3 环境中调用 MuJoCo 物理引擎的开源库。MuJoCo 本身是一款擅长处理复杂接触场景的高性能刚体仿真引擎,广泛用于机器人控制和强化学习研究。通过 mujoco-py,用户无需编写底层 C++ 代码,即可在 Python 中轻松构建仿真环境、加载模型并执行物理步进,极大降低了使用门槛。
不过需要特别注意,mujoco-py 目前已处于“弃用”状态,它仅支持到 MuJoCo 2.1.0 版本,不再适配后续更新。官方建议新用户直接采用 DeepMind 推出的新版官方 Python 绑定。尽管如此,对于维护旧版项目或依赖特定历史版本的研究人员来说,mujoco-py 依然具有实用价值。它主要适用于熟悉 Linux 或 macOS 系统的算法工程师与科研人员,尤其在复现早期强化学习论文成果时不可或缺。其技术亮点在于提供了简洁的 Pythonic 接口,将复杂的物理计算封装为易于操作的类与方法,让用户能专注于策略设计而非底层仿真细节。
使用场景
某机器人算法团队正在开发一款双足人形机器人的强化学习平衡控制器,需要在仿真环境中进行数百万次的步态训练与物理验证。
没有 mujoco-py 时
- 环境搭建繁琐:团队必须编写复杂的 C++ 扩展或配置沉重的 Docker 容器才能调用 MuJoCo 引擎,导致新成员入职环境配置耗时数天。
- 迭代效率低下:由于缺乏原生的 Python 接口,研究人员无法直接使用 PyTorch 或 TensorFlow 快速修改奖励函数和网络结构,每次调整都需重新编译,严重拖慢实验节奏。
- 调试门槛极高:在纯 C++ 环境下难以实时可视化关节角度、接触力等关键物理状态数据,排查模型跌倒原因如同“盲人摸象”。
- 跨平台协作困难:部分成员使用 macOS 进行初步验证,但因编译依赖冲突(如 clang 不支持 openmp),代码在 Linux 服务器部署时常出现兼容性问题。
使用 mujoco-py 后
- 开箱即用:通过
pip install即可在 Linux 和 macOS 上直接集成 MuJoCo 2.1,将环境准备时间从数天缩短至几分钟。 - 敏捷开发:研究人员能在 Python 脚本中直接加载
humanoid.xml模型并驱动仿真,实现算法逻辑与物理环境的无缝对接,实验迭代速度提升十倍。 - 数据透明化:利用
sim.data.qpos等属性可实时打印或绘制机器人姿态数据,快速定位步态异常瞬间,大幅降低调试难度。 - 生态兼容性好:完美适配主流深度学习框架,团队可统一开发流程,消除了因操作系统差异导致的协作壁垒。
mujoco-py 通过提供高效的 Python 原生绑定,将复杂的刚体物理仿真转化为简洁的代码调用,极大降低了机器人强化学习的研发门槛与时间成本。
运行环境要求
- Linux
- macOS
未说明 (仅提及可选的 GPU 渲染测试,非运行必需)
未说明

快速开始
状态: 已弃用
mujoco-py 不支持 MuJoCo 2.1.0 之后的版本。
新用户应依赖 官方 MuJoCo Python 绑定。
mujoco-py

MuJoCo 是一个用于详细、高效的刚体接触模拟的物理引擎。
mujoco-py 允许从 Python 3 中使用 MuJoCo。
该库已更新,以兼容于 2021 年 10 月 18 日发布的 MuJoCo 2.1 版本。
概述
要求
目前支持以下平台:
- Linux,Python 3.6+。请参阅 Dockerfile 以获取标准的系统依赖列表。
- OS X,Python 3.6+。
以下平台已被弃用且不受支持:
- Windows 支持已在 2.0.2.0 中被弃用并移除。一个已知可用的旧版本是 1.50.1.68。
- Python 2 已在 1.50.1.0 中被弃用并移除。Python 2 用户可以继续使用
0.5分支。该分支的最新版本是0.5.7,可以通过pip install mujoco-py==0.5.7进行安装。
安装 MuJoCo
如果您希望指定非标准的安装位置,请使用环境变量 MUJOCO_PY_MUJOCO_PATH。
安装和使用 mujoco-py
要将 mujoco-py 包含在您自己的项目中,请按如下方式将其添加到您的依赖项中:
mujoco-py<2.2,>=2.1
若想交互式地体验 mujoco-py,请按照以下步骤操作:
$ pip3 install -U 'mujoco-py<2.2,>=2.1'
$ python3
import mujoco_py
import os
mj_path = mujoco_py.utils.discover_mujoco()
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)
print(sim.data.qpos)
# [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
sim.step()
print(sim.data.qpos)
# [-2.09531783e-19 2.72130735e-05 6.14480786e-22 -3.45474715e-06
# 7.42993721e-06 -1.40711141e-04 -3.04253586e-04 -2.07559344e-04
# 8.50646247e-05 -3.45474715e-06 7.42993721e-06 -1.40711141e-04
# -3.04253586e-04 -2.07559344e-04 -8.50646247e-05 1.11317030e-04
# -7.03465386e-05 -2.22862221e-05 -1.11317030e-04 7.03465386e-05
# -2.22862221e-05]
有关高级用法,请参阅 完整文档。
故障排除
您使用的是 macOS,并遇到 clang: error: unsupported option '-fopenmp'
如果此错误发生在安装过程中或运行 python -c "import mujoco_py" 时,则问题可能与 此处相关。简而言之,macOS 默认使用的 Apple clang LLVM 编译器不支持 OpenMP。因此,您可以尝试安装其他版本的 clang/llvm。例如(需要 brew):
brew install llvm
brew install boost
brew install hdf5
# 将以下内容添加到您的 .bashrc/.zshrc:
export PATH="/usr/local/opt/llvm/bin:$PATH"
export CC="/usr/local/opt/llvm/bin/clang"
export CXX="/usr/local/opt/llvm/bin/clang++"
export CXX11="/usr/local/opt/llvm/bin/clang++"
export CXX14="/usr/local/opt/llvm/bin/clang++"
export CXX17="/usr/local/opt/llvm/bin/clang++"
export CXX1X="/usr/local/opt/llvm/bin/clang++"
export LDFLAGS="-L/usr/local/opt/llvm/lib"
export CPPFLAGS="-I/usr/local/opt/llvm/include"
注意: 编辑完 .bashrc/.zshrc 后,请务必重新加载它,并再次尝试安装 mujoco-py:
# 确保您的 Python 环境已激活
pip install -U 'mujoco-py<2.2,>=2.1'
缺少 GLFW
安装时常出现的错误之一是:
raise ImportError("Failed to load GLFW3 shared library.")
这通常是因为 glfw Python 包无法找到 GLFW 动态库。
MuJoCo 自带了一份该库的副本,可在安装时使用。
将 MuJoCo 二进制目录路径添加到动态链接器中:
LD_LIBRARY_PATH=$HOME/.mujoco/mujoco210/bin pip install mujoco-py
这在没有 GLFW 包的 Ubuntu 14.04 上尤其有用。
Ubuntu 安装故障排除
由于 mujoco_py 包含需要与提供的 MuJoCo 二进制文件链接的编译后原生代码,因此在 Linux 上的安装比纯 Python 源码包更为复杂。
要在 Ubuntu 上安装 mujoco-py,请确保已安装以下库:
sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3
如果您已安装上述库,但仍提示找不到 -lGL,很可能需要手动创建符号链接:
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so
使用示例
在 examples/ 中可以找到许多演示 mujoco-py 高级功能的示例。其中包括:
body_interaction.py: 展示碰撞物体之间的相互作用disco_fetch.py: 展示如何使用TextureModder随机化对象纹理internal_functions.py: 展示如何调用原始 MuJoCo 函数,如mjv_room2modelmarkers_demo.py: 展示如何向查看器添加仅用于可视化的几何体serialize_model.py: 展示如何保存和恢复模型setting_state.py: 展示如何将模拟重置为给定状态tosser.py: 展示一个简单的驱动型物体分拣机器人应用
有关高级用法,请参阅 完整文档。
开发
要运行提供的单元测试和集成测试:
make test
要测试 GPU 加速渲染,请运行:
make test_gpu
目前这在一定程度上依赖于 OpenAI 内部基础设施,但如果您根据自己的设置调整 Makefile 参数,应该也能正常运行。
更改记录
- 2018年8月3日:我们移除了 MjSimPool,因为多个进程共享单个模拟所带来的好处并不多。
致谢
mujoco-py 由 OpenAI 机器人团队维护。贡献者包括:
- Alex Ray
- Bob McGrew
- Jonas Schneider
- Jonathan Ho
- Peter Welinder
- Wojciech Zaremba
- Jerry Tworek
版本历史
v2.1.2.142021/11/29v2.0.2.52019/08/12v2.0.2.22019/04/16v2.0.2.12019/04/15v2.0.2.02019/03/22v2.0.2.0a12019/03/191.50.1.02017/06/280.5.72017/06/28常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。