MiniWorld-PickupObjects环境加载失败问题求助
解决MiniWorld环境加载失败的方案
1. 验证集群依赖安装与环境注册
- 先卸载现有相关包,重新安装版本匹配的依赖(避免版本兼容问题):
pip uninstall -y gymnasium minigrid miniworld pip install gymnasium==0.29.0 miniworld==2.0.0 - 安装完成后,运行以下代码确认环境是否注册成功:
若输出包含import gymnasium from miniworld import register_envs register_envs() # 打印所有MiniWorld相关环境 print([env_id for env_id in gymnasium.envs.registry if 'MiniWorld' in env_id])MiniWorld-PickupObjects-v0,说明环境已成功注册。
2. 对齐本地与集群的Python环境
- 检查集群使用的Python解释器路径,确保和本地一致:
which python - 对比本地与集群的依赖版本,确保完全匹配:
若使用虚拟环境,确认集群已激活对应环境:pip list | grep -E "gymnasium|miniworld|minigrid"source path/to/your/venv/bin/activate # Linux/macOS
3. 手动注册环境(自动注册失效时)
如果自动注册未生效,在代码中手动注册目标环境,同时修正原代码的两处小问题:
import gymnasium from miniworld.envs.pickupobjects import PickupObjects # 手动注册MiniWorld-PickupObjects-v0环境 gymnasium.register( id='MiniWorld-PickupObjects-v0', entry_point='miniworld.envs.pickupobjects:PickupObjects', kwargs={'render_mode': 'human', 'domain_rand': False} ) env = gymnasium.make('MiniWorld-PickupObjects-v0') for i_episode in range(50): obs, info = env.reset() # gymnasium.reset()返回(观测值, 信息),需完整接收 done = False episode_Step = 0 while not done: action = env.action_space.sample() next_state, reward, terminated, truncated, info = env.step(action) done = terminated or truncated # 布尔值用逻辑或判断结束,而非加法 env.render() env.close()
4. 检查集群权限与路径
- 确认当前用户对Python包安装目录有读写权限,避免依赖包未被正确加载。
- 若集群存在多版本Python共存情况,直接使用完整路径调用Python解释器(如
/usr/bin/python3.10)执行代码,避免版本混淆。
内容的提问来源于stack exchange,提问作者user19826638
相关产品推荐
相关产品推荐

