当前位置: 首页 > news >正文

强化学习环境安装——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 gymCartPole-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-pyMujoco 引擎绑定需单独安装(许可证限制)-

(4)其他扩展

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

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

库名用途安装命令示例
gymnasiumGym 官方分支(维护更活跃)pip install gymnasium兼容 Gym,修复了部分 Bug
procgen程序化生成环境pip install procgenCoinRun-v0
pybullet3D 物理仿真pip install pybulletAntBulletEnv-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()
http://www.xdnf.cn/news/330355.html

相关文章:

  • Chain-of-Draft (CoD) 是提示工程的新王者
  • openstack的网络
  • 数据结构--树
  • 第十六次博客打卡
  • mindie近期报错总结
  • WordPress_depicter Sql注入漏洞复现(CVE-2025-2011)
  • LeetCode 267:回文排列 II —— Swift 解法全解析
  • 第一章:MySQL 索引基础
  • ZYNQ笔记(十八):VDMA VGA彩条显示
  • 软考错题(一)
  • 格式工厂:一站式多媒体文件转换专家
  • 全网通电视 1.0 | 支持安卓4系统的直播软件,提供众多港台高清频道
  • 深入理解 Pinia:从基础到进阶的完整指南
  • 从交互说明文档,到页面流程图设计全过程
  • bpftrace 中使用 bpf_trace_printk
  • Soft Mask(软遮罩)技术
  • 【多线程】用阻塞队列实现等待唤醒机制(Java实现)
  • Python中的global与nonlocal关键字详解
  • 【软件测试学习day6】WebDriver常用的API
  • Java后端开发day43--IO流(三)--缓冲流转换流序列化流
  • 如何在本地测试网站运行情况
  • Kubernetes生产实战:容器内无netstat时的7种端口排查方案
  • 如何理解参照权
  • 如何设置飞书多维表格,可以在扣子平台上使用
  • Python办公自动化应用(三)
  • 备注在开发中的重要作用
  • MySQL数据库高可用(MHA)详细方案与部署教程
  • 国标GB28181视频平台EasyGBS打造电力行业变电站高效智能视频监控解决方案
  • 统计匹配的二元组个数 - 华为OD机试真题(A卷、JavaScript题解)
  • 宝塔面板,删除项目后还能通过域名进行访问