windows 11安装Python3.9、mujoco200、mujoco_py2.0.2.8、metaworld
一、安装前准备
-
系统要求
• 确保 Windows 10/11 系统,并关闭杀毒软件或防火墙(避免误拦截)。• 安装 Visual Studio Build Tools(2017 或 2019 版本),勾选 C++ 桌面开发组件(用于编译 Cython 依赖)。
-
Python 环境
• Python 3.9,通过 Anaconda 或直接安装 Python。• 创建虚拟环境:
conda create -n py39 python=3.9 conda activate py39
二、安装 MuJoCo 200
-
下载资源
• MuJoCo 200:从 Roboti.us 官网(https://www.roboti.us/index.html) 下载mujoco200-windows-x86_64.zip
。• 许可证文件:访问 MuJoCo 许可证页面 获取
mjkey.txt
。 -
部署文件
• 在用户目录(如C:\Users\YourName
)下创建隐藏文件夹.mujoco
,并将 MuJoCo 解压至此,重命名为mujoco200
。• 将
mjkey.txt
复制到以下路径:◦
C:\Users\YourName\.mujoco\
◦
C:\Users\YourName\.mujoco\mujoco200\bin
. -
配置环境变量
• 用户变量:◦
MUJOCO_PY_MJPRO_PATH
→C:\Users\YourName\.mujoco\mujoco200
◦
MUJOCO_PY_MJKEY_PATH
→C:\Users\YourName\.mujoco\mujoco200\bin\mjkey.txt
.• 系统 Path:添加
C:\Users\YourName\.mujoco\mujoco200\bin
.
三、安装依赖库
- 安装 Cython
pip install mujoco-py==2.0.2.8 cython==0.29.33 gym==0.26.2
四、安装Metaworld
git clone https://github.com/Farama-Foundation/Metaworld.gitcd Metaworld
pip install .
五、验证安装
- 测试 MuJoCo
# import os
# os.add_dll_directory("C://Users//82331//.mujoco//mjpro150//bin")
# import mujoco_py
import os
os.add_dll_directory(r"C:\Users\82331\.mujoco\mujoco200\bin") # 替换实际路径
import mujoco_pyimport metaworld
import randomprint(metaworld.ML1.ENV_NAMES) # Check out the available environmentsml1 = metaworld.ML1('pick-place-v2') # Construct the benchmark, sampling tasksenv = ml1.train_classes['pick-place-v2']() # Create an environment with task `pick_place`
task = random.choice(ml1.train_tasks)
env.set_task(task) # Set taskobs = env.reset() # Reset environmenta = env.action_space.sample() # Sample an action
result = env.step(a)
print("Step 返回值结构:", result) # 输出元组内容
print("返回值数量:", len(result)) # 查看元组长度
obs, reward, terminated, truncated, info = env.step(a)
输出
[‘assembly-v2’, ‘basketball-v2’, ‘bin-picking-v2’, ‘box-close-v2’, ‘button-press-topdown-v2’, ‘button-press-topdown-wall-v2’, ‘button-press-v2’, ‘button-press-wall-v2’, ‘coffee-button-v2’, ‘coffee-pull-v2’, ‘coffee-push-v2’, ‘dial-turn-v2’, ‘disassemble-v2’, ‘door-close-v2’, ‘door-lock-v2’, ‘door-open-v2’, ‘door-unlock-v2’, ‘hand-insert-v2’, ‘drawer-close-v2’, ‘drawer-open-v2’, ‘faucet-open-v2’, ‘faucet-close-v2’, ‘hammer-v2’, ‘handle-press-side-v2’, ‘handle-press-v2’, ‘handle-pull-side-v2’, ‘handle-pull-v2’, ‘lever-pull-v2’, ‘pick-place-wall-v2’, ‘pick-out-of-hole-v2’, ‘pick-place-v2’, ‘plate-slide-v2’, ‘plate-slide-side-v2’, ‘plate-slide-back-v2’, ‘plate-slide-back-side-v2’, ‘peg-insert-side-v2’, ‘peg-unplug-side-v2’, ‘soccer-v2’, ‘stick-push-v2’, ‘stick-pull-v2’, ‘push-v2’, ‘push-wall-v2’, ‘push-back-v2’, ‘reach-v2’, ‘reach-wall-v2’, ‘shelf-place-v2’, ‘sweep-into-v2’, ‘sweep-v2’, ‘window-open-v2’, ‘window-close-v2’]
Step 返回值结构: (array([ 3.56493528e-03, 6.01239651e-01, 1.94129897e-01, 1.00000000e+00,
-5.08908876e-02, 6.16074939e-01, 1.97581367e-02, -2.49151934e-04,
4.05471051e-04, 4.48015958e-09, 9.99999887e-01, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00, 4.58420042e-03, 6.01388114e-01,
1.95143455e-01, 1.00000000e+00, -5.09063224e-02, 6.16065449e-01,
2.00000000e-02, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
1.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]), 0.02255788970126373, False, False, {‘success’: 0.0, ‘near_object’: 0.0, ‘grasp_success’: 0.0, ‘grasp_reward’: 0.026531074264920684, ‘in_place_reward’: 0.1309117013921853, ‘obj_to_target’: 0.35353479374476143, ‘unscaled_reward’: 0.02255788970126373})
返回值数量: 5