强化学习环境安装——openAI gym

前言

在强化学习领域,OpenAI Gym 是一款极具影响力且被广泛应用的工具包。它OpenAI推出的强化学习实验环境库,为研究人员和开发者提供了一个标准化的平台,能够轻松创建、测试和比较各种强化学习算法。可以说它是用Python语言实现了离散之间智能体-环境中的环境部分。

Gym库的官网链接:https://gym.openai.com/ 。目前 Gym 也有活跃分支 Gymnasium(https://www.gymnasium.farm/ ),对原 Gym 进行了改进和扩展。

安装环境

安装环境在虚拟环境下最好,我之前在安装PyTorch的时候已经安装过虚拟环境了,如果想顺便安装PyTorch或者虚拟环境conda的可以看这里。

我的安装环境是conda 里的虚拟环境。

-windows11
-python3.9

gym可以通过pip安装或者conda 安装,所以安装之前可以尝试先更新一下安装器的版本。(当然这步是不必要的)

# pip版本更新
pip --version
python -m pip install --upgrade pip
pip --version

# conda版本更新
conda --version
conda update conda # 更新conda本身
# 或者你也可以更新所有的包,当然需要先激活虚拟环境 
# conda update --all
conda --version

gym安装

gym实际上有许多的包组成,所以它可以分为最小安装和完全安装。

最小安装
直接安装gym,后面什么都不加,就是最小安装。这种安装方式只安装了gym环境最基本的一些包,好像有100多个。

# 通过pip安装
pip install gym
# 通过conda 安装
conda install gym

指定安装
如果想要安装gym里所有的包,直接在gym后面加个方括号,加上all就行。

# 通过pip安装
pip install gym[all]
# 通过conda 安装
conda install gym[all]

当然这个方括号里也可以指定特殊的包,比如经常用的box2d。

# 通过pip安装
pip install gym[box2d]
# 通过conda 安装
conda install gym[box2d]

当然这个box2d很有可能安装不了,或者你是在使用all的时候卡在box2d这块,导致整个安装失败。

这个可能是安装gym[box2d]时box2d - py轮子构建失败,swig.exe命令执行出错,我们后面再说。

gym库介绍

OpenAI Gym 提供了一系列强化学习环境库,分为 核心库扩展库


1. 核心库(必备)

库名 作用 安装命令 常用环境示例
gym 基础环境(经典控制、简单算法) pip install gym CartPole-v1, MountainCar-v0
gym-notices 版本更新通知 自动随 gym 安装 -

2. 常用扩展库(按领域分类)

(1)经典控制 & 物理仿真

库名 环境类型 安装命令 示例环境
gym[classic_control] 经典控制问题 pip install gym[classic_control] Pendulum-v1, Acrobot-v1
gym[box2d] 2D 物理引擎(如车辆、机器人) pip install gym[box2d] LunarLander-v2, CarRacing-v2

(2)Atari 游戏

库名 说明 安装命令 示例游戏
gym[atari] 2600 款 Atari 游戏 pip install gym[atari] Pong-v4, Breakout-v4
ale-py 新版 Atari 模拟器(必装) pip install ale-py -

(3)机器人控制

库名 说明 安装方式 示例环境
gym[robotics] Mujoco 机器人仿真 pip install gym[robotics] FetchReach-v2
mujoco-py Mujoco 引擎绑定 需单独安装(许可证限制) -

(4)其他扩展

库名 用途 安装命令 备注
gym[toy_text] 文本型简单环境 pip install gym[toy_text] FrozenLake-v1
gym[all] 一次性安装所有官方扩展 pip install gym[all] 不推荐(可能报错或冲突)

3. 第三方扩展库(非官方但常用)

库名 用途 安装命令 示例
gymnasium Gym 官方分支(维护更活跃) pip install gymnasium 兼容 Gym,修复了部分 Bug
procgen 程序化生成环境 pip install procgen CoinRun-v0
pybullet 3D 物理仿真 pip install pybullet AntBulletEnv-v0

4. 版本注意

  • Gym 0.26+:部分 API 变更(如 env.step() 返回 5 个值)。
  • Gymnasium:建议新项目使用(pip install gymnasium),它是 Gym 的官方继承者,维护更活跃。如果是老项目,可以import gym → import gymnasium as gym,不过 gymnasium 所有的库都需要重新安装,要确保用到的库都安装了。

安装问题

刚刚提到了安装 gym[box2d] 时出现错误的问题。它很有可能是因为 缺少 Box2D 的编译依赖(特别是 swig 和 C++ 编译工具链)。

根本原因Box2D 是一个 C++ 物理引擎,Python 的 box2d-py 包需要通过 swig 工具生成绑定代码。如果你和我一样,那么你的错误日志里会显示 swig.exe 未找到,说明系统缺少必要的编译环境。
** 解决方案**

  • 推荐方案(无需编译)
    直接安装预编译的 Box2D 包:
conda install -c conda-forge gym-box2d

这会自动处理所有依赖(包括 box2d-py 的二进制版本)。

  • 正规方案
    • 步骤 1:安装 SWIG(必须)在 Conda 环境中运行:conda install -c conda-forge swig
      或手动安装:下载 SWIG Windows 版,将 swig.exe 所在目录加入系统 PATH

    • 步骤 2:安装 Visual Studio 编译工具: 确保已安装 Visual Studio 2022 并勾选以下组件:
      “使用 C++ 的桌面开发” - “Windows 10/11 SDK”
      或通过命令行安装(管理员权限):
      winget install Microsoft.VisualStudio.2022.BuildTools --override "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"

    • 步骤 3:清理并重新安装
      pip uninstall box2d-py gym # 清理旧版本
      conda install -c conda-forge swig # 确保 SWIG 已安装
      pip install gym[box2d] --no-cache-dir # 强制重新编译

验证安装
运行以下代码测试:

import gym
env = gym.make("LunarLander-v2")  # 使用 Box2D 环境
print("环境创建成功!")
env.close()

你可能感兴趣的:(深度学习,人工智能,经验分享,机器学习,学习)