第二章:环境搭建与工具链——Python与Anaconda环境配置、Gymnasium库安装、PyTorch/TensorFlow选择、版本兼容性避坑
说实话,做策略训练与仿真迁移,第一步往往最劝退。不是算法难,是环境搭不起来。我见过太多人卡在「import gymnasium报错」这一步,一卡就是半天。嗯,这一章咱们就把这事彻底搞定。
2.1 Python与Anaconda:你的实验台
我个人习惯用Anaconda来管理Python环境。为什么?因为策略训练项目往往需要多个Python版本,比如有的库只支持3.8,有的必须3.10。用Anaconda,你可以随时创建、切换、删除环境,互不干扰。
安装步骤其实很简单:
- 去Anaconda官网下载对应系统的安装包(Windows/macOS/Linux)
- 一路默认安装,但记得勾选「Add Anaconda to my PATH environment variable」
- 打开终端或Anaconda Prompt,输入
conda --version验证
rl_env。命令是:conda create -n rl_env python=3.9。这样就算搞坏了,删掉重来也不影响系统Python。
2.2 Gymnasium库安装:强化学习的游乐场
Gymnasium是 Gym的继承者,目前最主流的强化学习环境库。说白了,它提供了一堆现成的游戏环境,比如CartPole、MountainCar、Atari游戏等,让你可以直接在上面训练智能体。
安装命令:
pip install gymnasium
pip install gymnasium[classic-control] # 经典控制环境
pip install gymnasium[atari] # Atari游戏环境
pip install gymnasium[box2d] # Box2D物理环境
我在项目中遇到过一个问题:直接 pip install gymnasium 后,运行CartPole环境报错,说缺少依赖。后来发现是没装 classic-control 这个扩展包。所以建议你一次性装全。
pip uninstall gym,再装Gymnasium。否则会出现「module 'gym' has no attribute 'make'」这种诡异错误。
2.3 PyTorch vs TensorFlow:我选哪个?
这个问题几乎每个学员都会问。我的回答是:做策略训练,优先选PyTorch。
为什么?
- 调试方便: PyTorch是动态图,你可以随时print张量的值,像写普通Python一样。TensorFlow 2.x虽然也支持动态图,但总感觉隔了一层。
- 社区生态: 目前强化学习领域的主流框架,比如Stable-Baselines3、RLlib、CleanRL,底层都是PyTorch。你用TensorFlow反而会找不到现成的实现。
- 我自己的经历: 有一次我需要在自定义环境中实现一个策略网络,用TensorFlow写了一天没跑通,换成PyTorch两小时搞定。嗯,从此我就成了PyTorch党。
当然,如果你公司强制用TensorFlow,或者你要部署到TensorFlow Serving上,那也没问题。只是学习成本会高一些。
安装命令对比:
| 框架 | CPU版本 | GPU版本(CUDA 11.8) |
|---|---|---|
| PyTorch | pip install torch torchvision torchaudio |
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 |
| TensorFlow | pip install tensorflow |
pip install tensorflow[and-cuda] |
2.4 版本兼容性避坑指南
我曾经因为版本问题,浪费了整整一个周末。当时装的是PyTorch 2.0 + Gymnasium 0.28 + Stable-Baselines3 1.7,结果训练时一直报「AttributeError: 'Env' object has no attribute 'unwrapped'」。后来发现是Stable-Baselines3对Gymnasium的版本有要求。
这里给你一张我实测过的兼容性表:
| 组件 | 推荐版本 | 注意事项 |
|---|---|---|
| Python | 3.8 - 3.10 | 3.11以上部分库不兼容 |
| Gymnasium | 0.28.1 或 0.29.0 | 不要装0.26以下版本 |
| PyTorch | 2.0.1 或 2.1.0 | CUDA版本要和驱动匹配 |
| Stable-Baselines3 | 2.0.0 或 2.1.0 | 必须和Gymnasium版本对应 |
| TensorFlow | 2.12.0 或 2.13.0 | 2.15以上改动较大 |
torch.cuda.is_available() 检查一下GPU是否可用。
2.5 知识体系总览
下面这张图帮你理清整个环境搭建的逻辑。说白了,就是三层结构:底层是Python和Anaconda,中间是深度学习框架,上层是强化学习环境库。
2.6 快速验证脚本
环境搭好后,跑下面这段代码,能一次性验证所有组件是否正常工作:
import gymnasium as gym
import torch
import sys
print(f"Python版本: {sys.version}")
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA可用: {torch.cuda.is_available()}")
# 创建环境
env = gym.make("CartPole-v1")
obs, info = env.reset()
print(f"环境: CartPole-v1")
print(f"观测空间: {env.observation_space}")
print(f"动作空间: {env.action_space}")
# 随机走一步
action = env.action_space.sample()
obs, reward, terminated, truncated, info = env.step(action)
print(f"随机动作: {action}, 奖励: {reward}")
env.close()
print("✅ 环境搭建成功!")
如果这段代码能顺利跑完,恭喜你,环境搭建这一步你已经过关了。接下来就可以正式开始策略训练了。