You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pybullet_envs库导入报错:AttributeError问题求助

解决pybullet_envs导入时的AttributeError问题

报错原因

这个错误是因为pybullet_envs旧版本与新版gym(0.26+)不兼容。旧版gym中gym.envs.registration.registry是带有env_specs属性的对象,而新版gym里它直接是存储环境规格的字典,原代码访问registry.env_specs自然会抛出AttributeError。

解决方案

方案一:安装兼容的gym版本

卸载当前gym,安装0.25.x系列的兼容版本:

pip uninstall gym -y
pip install gym==0.25.2

这个版本和pybullet_envs的原始注册逻辑匹配,无需修改代码即可正常使用。

方案二:修改pybullet_envs的注册逻辑

找到你环境中pybullet_envs的__init__.py文件(路径为~\anaconda3\lib\site-packages\pybullet_envs\__init__.py),修改其中的register函数:
原代码:

def register(id, *args, **kvargs):
  if id in registry.env_specs:
    return
  else:
    return gym.envs.registration.register(id, *args, **kvargs)

修改为:

def register(id, *args, **kvargs):
  if id in registry:
    return
  else:
    return gym.envs.registration.register(id, *args, **kvargs)

直接判断环境ID是否在registry字典中,适配新版gym的结构。

方案三:迁移到gymnasium(新版gym)

如果想使用最新版的强化学习环境生态,可以切换到gymnasium(原gym的官方后续项目),并安装兼容的pybullet环境包:

pip install gymnasium pybullet-gymnasium

之后把代码中的import gym替换为:

import gymnasium as gym

环境名称可以直接沿用原有的InvertedPendulumBulletEnv-v0,无需额外修改。

内容的提问来源于stack exchange,提问作者Anish Kommireddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:47:22