TradingGym · 安装与验证 · 实测
TradingGym 怎么安装:官方只有源码安装这一条路
TradingGym 没有发布到 PyPI,官方 README 给的路径是 git clone 后执行 python setup.py install。麻烦在于:网上流传的 pip install trading_env 实测不存在,而名字相近的 trading-gym 属于另一个人的项目。本页把三条候选路径、依赖的四个包、以及装完怎么验证一次写清,并附上本机实测的报错原文。
- 官方路径:
git clone https://github.com/Yvictor/TradingGym.git→cd TradingGym→python setup.py install - 装完自测:
python -m trading_env.test本机实测通过(exit 0,用时 0.2658s);注意官方 CI 里的斜杠写法会报错 - 别装错:
trading_env、tradinggym、TradingGym、tradinggym-env在 PyPI 全部 404
TradingGym 三条安装路径是什么?
setup.py 与 PyPI 实测(2026-09-22)绘制,属示意,非官方流程图。右侧第三条是本机实测不存在的路径:trading_env 在 PyPI 返回 404,名字相近的 trading-gym 是另一个项目。TradingGym 与 EasyClaw 无已证实集成。TradingGym · 安装路径
TradingGym 安装路径对照是什么?哪条能用、哪条会装错
官方 README 的「Installation」只有三行命令,但社区文章里出现的 pip install trading_env 并不存在。下表把可用的与不可用的路径分开,并标出每条的前置条件。
| 路径 | 命令 | 前置条件 | 适用场景 | 注意点 |
|---|---|---|---|---|
| 官方源码安装(README 路径) | git clone https://github.com/Yvictor/TradingGym.git 后 cd TradingGym、python setup.py install | git、Python、可写入 site-packages | 第一次安装、按官方文档走 | 装进「当前 python 对应的解释器」;本机多个 Python 并存时最容易装错解释器 |
| 可编辑安装(改源码时推荐) | python -m pip install -e .(在仓库根目录) | pip、setuptools | 要改 reward、观测列或做实验 | 改动立即生效不必重装;但仍要处理 as_matrix 兼容问题(见「可运行性」页) |
| 按包名 pip 安装 | pip install trading_env | — | 想一步装完 | 实测 PyPI 返回 404,这条命令对应的包不存在,网上教程里的写法不可照抄 |
| 按相似名 pip 安装 | pip install trading-gym | — | 搜到「trading gym」就装 | 实测存在但属于另一个项目(0.1.8,作者 mymusise、仓库 mymusise/Trading-Gym),与本项目无隶属关系 |
| 猜其它包名 | pip install tradinggym / TradingGym / tradinggym-env | — | — | 三个名字实测全部 404,不要凭名字猜 |
| 从仓库归档包安装 | 下载 zip → 解压 → 在解压出的仓库根目录执行 python -m pip install . | 无 git,但需要能联网装依赖 | 机器上没有 git | 内容与 master HEAD 一致(08bb534);仓库未发布任何 sdist/wheel,所以只能从源码装 |
pip install 一行搞定的教程,要么笔误,要么装的是同名另一个项目;装完务必用下面的三步验证确认导入路径。TradingGym · 同名包实测
PyPI 上到底有没有 TradingGym?六个包名的实测结果
「装错了包」是这类小众仓库最常见的坑,而且症状很隐蔽——import trading_env 居然成功了,但装的是别人的东西。下表是查询 PyPI JSON 接口得到的原始结果。
| 包名 | 实测结果 | 真实身份 | 适用场景 | 注意点 |
|---|---|---|---|---|
trading_env | HTTP 404 | 不存在 | — | 这正是本项目的包名(setup.py 里 name='trading_env'),但它没有发布到 PyPI |
tradinggym | HTTP 404 | 不存在 | — | 小写、无连字符的写法同样查不到 |
TradingGym | HTTP 404 | 不存在 | — | 大写写法也不例外(PyPI 查询本身不区分大小写,实际就是没有) |
tradinggym-env | HTTP 404 | 不存在 | — | 社区里常见的「项目名 + env」猜法在这里不成立 |
trading-gym | 存在,最新 0.1.8 | 另一个项目:作者 mymusise,主页 github.com/mymusise/Trading-Gym | 只在确认自己要的就是该项目时才装 | 与本项目(Yvictor/TradingGym)无隶属关系,装上后 API 与文档全部不同 |
gym-trading | HTTP 404 | 不存在 | — | 「顺序颠倒」的猜法也不存在 |
08bb534)。TradingGym · 依赖与版本
TradingGym 要装哪些依赖?四个必装包、一个容易漏的包
setup.py 声明的依赖是 pandas、numpy、matplotlib、colour;但 README 的示例代码用到了 pd.read_hdf(),那需要 PyTables——它不在依赖清单里,是本项目最容易漏掉的一项。
| 依赖 | 是否在 install_requires | 作用与触发点 | 适用场景 | 注意点 |
|---|---|---|---|---|
pandas | 是 | 承载行情 DataFrame,并由 Series.as_matrix()(v0 系与 backtest_v1)或 to_numpy()(training_v1)转成数组 | 任何环境 | pandas 1.0 起移除 as_matrix(),四支环境里三支会因此报错(本机实测) |
numpy | 是 | 数组切片、持仓数组、np.random 抽日 | 任何环境 | 版本未约束;本机实测 numpy 2.4.6 可跑 |
matplotlib | 是 | 四个环境文件的顶层 import,render() 用它画行情、持仓与收益 | 要看可视化时才真正用到 | 即使不调 render() 也得装——它是模块级 import,缺了直接 import 失败 |
colour | 是 | training_v1 与 backtest_v1 里的 from colour import Color,用于渲染渐变色 | 任何 import trading_env 的场合 | 因为 envs/__init__.py 一次性 import 四个环境,缺 colour 会让整个包 import 失败 |
tables(PyTables) | 否 | README 的 pd.read_hdf('dataset/SGXTW.h5','STW') 需要它 | 按 README 读 h5 样例数据 | 不在依赖清单里;不想装就用官方自测的 CSV 路径 trading_env/test/data/SGXTWsample.csv |
| Python 版本 | 未声明(setup.py 无 python_requires) | — | — | 官方 CI 只覆盖 Python 3.4 / 3.5 / 3.6(.travis.yml);本机在 3.11.9 上跑通了官方自测,但这是实测结论、不是官方承诺 |
| 操作系统 | 未声明 | 代码里没有 OS 分支 | Windows / Linux / macOS | 本机 Windows 实测通过;路径与编码类问题见下一节 |
pd.read_hdf('dataset/SGXTW.h5','STW'),而仓库里 dataset/ 下实际的文件名是 SGXTWsample.h5(本机文件树实读)。路径对不上会直接 FileNotFoundError,所以第一次跑建议先用官方自测那份 CSV。以上均以仓库内实际文件与源码为准。TradingGym · 安装与验证
TradingGym 怎么装好并验证?从 clone 到跑通官方自测
这三步在本机实测通过(Windows + Python 3.11.9)。第三步是本页的关键:它能在你写任何代码之前就告诉你「装的是哪一份、依赖齐不齐」。
第 1 步 · 克隆并安装到当前解释器
git clone https://github.com/Yvictor/TradingGym.git
cd TradingGym
python -m pip install -e . # 官方 README 写的是 python setup.py install,二者都能装
python -c "import trading_env, os; print(os.path.dirname(trading_env.__file__))"
用 python -m pip 而不是裸 pip,能保证装进你正在使用的那个解释器;最后一行打印的路径应该指向你刚 clone 的目录。
预期输出:路径指向你 clone 的 TradingGym 目录(例如 D:\src\TradingGym\trading_env),不是 site-packages 下的陌生目录。
第 2 步 · 确认四支环境都注册上了
import trading_env
print(trading_env.available_envs())
这一步同时验证了四个依赖是否齐全——因为包入口会一次性 import 四个环境文件,缺 colour 或 matplotlib 会在这里就报 ModuleNotFoundError,而不是等到你调用 reset()。
预期输出:['training_v0', 'training_v1', 'backtest_v0', 'backtest_v1'](本机实测结果)。
第 3 步 · 跑官方自测(注意命令写法)
python -m trading_env.test # 正确:点号分隔
python -m trading_env/test # 错误:官方 .travis.yml 里的斜杠写法
官方自测会在仓库自带样例数据上随机抽一个交易日,用随机动作跑最多 500 步。它的数据路径是相对路径,所以必须在仓库根目录执行。
预期输出:正确写法打印抽到的交易日与耗时(本机实测 2013-04-19、用时 0.2658s,exit 0);斜杠写法报 No module named trading_env/test。
.travis.yml 里写的是 python -m trading_env/test,照抄会直接失败(本机实测报错原文:No module named trading_env/test)。这是「CI 配置本身早已失效」的一个证据——Travis 开源版已停服,仓库 HEAD 也停在 2023-08-12。TradingGym · 环境排错
TradingGym Windows 与常见环境问题是什么?六类报错的成因与处理
这一节只列「安装阶段」能遇到的问题;reset() 之后的口径问题(reward、账本、space 声明)在「可运行性」与「奖励与基准」两页。每条都给现象、原因、处理三件套。
| 现象 | 原因 | 处理 | 适用场景 | 注意点 |
|---|---|---|---|---|
ModuleNotFoundError: No module named 'trading_env' | 装到了另一个 Python 解释器,或虚拟环境没激活 | 统一用 python -m pip install -e .;再用 python -c "import trading_env, os; print(os.path.dirname(trading_env.__file__))" 确认导入路径 | 机器上有多个 Python / 多个 venv | 裸 pip 与 python -m pip 可能指向不同解释器,这是最常见的坑 |
ModuleNotFoundError: No module named 'colour' | colour 未装成功(镜像缺包、离线环境) | 单独 python -m pip install colour 后重试 import | 公司内网/离线机器 | 它被 training_v1 与 backtest_v1 顶层 import,缺了会让整个 import trading_env 失败 |
ImportError / 提示缺少 PyTables(调用 read_hdf 时) | pd.read_hdf() 需要 PyTables,而它不在 install_requires 里 | python -m pip install tables;或改用官方自测用的 CSV:trading_env/test/data/SGXTWsample.csv | 按 README 读 h5 样例 | 不装也能用本项目,只要不调 read_hdf |
FileNotFoundError(读 dataset/SGXTW.h5) | README 示例的文件名与仓库实际文件名不一致 | 改用仓库里真实存在的 dataset/SGXTWsample.h5 或 trading_env/test/data/SGXTWsample.csv | 第一次跑 README 的 Getting Started | 以仓库文件树为准;README 存在年久未更新的示例 |
No module named trading_env/test | 使用了官方 CI 里的斜杠写法 | 改成 python -m trading_env.test(本机实测 exit 0) | 跑官方自测 | -m 只接受模块路径,用点号分隔 |
AttributeError: 'Series' object has no attribute 'as_matrix' | 代码写于 pandas 0.2x 年代,as_matrix() 在 pandas 1.0 被移除 | 加两行映射补丁(pd.Series.as_matrix = lambda self: self.to_numpy(),DataFrame 同理),或使用 pandas<1.0 的老环境 | training_v0 / backtest_v0 / backtest_v1 的 reset() | 这是运行期报错,装得再好也会遇到;补丁细节见「可运行性」页 |
| 路径含中文或空格时安装脚本报路径语法错误 | 命令行参数与编码处理(本机 cmd.exe 环境实测) | 把仓库放在纯 ASCII 路径下,并在命令行先 chcp 65001 切到 UTF-8 再执行 | Windows 中文系统 | 本机实测环境即按此配置;换个纯英文路径通常最省事 |
python setup.py install 会把包写进当前解释器的 site-packages,在受管或共享机器上可能因权限失败;遇到时优先用虚拟环境(下一节),而不是去提升权限。TradingGym · 隔离与卸载
TradingGym 用虚拟环境隔离:怎么装、怎么确认装的是哪一份、怎么卸干净
本项目 HEAD 停在 2023-08-12、依赖未约束版本,装进系统环境很容易和别的项目互相干扰。建议一个仓库一个虚拟环境,装与卸都以「导入路径」为准来判断。
| 场景 | 命令 | 说明 | 注意点 |
|---|---|---|---|
| 创建隔离环境 | python -m venv .venv | 在仓库同级或内部建一个独立解释器环境 | 建议放在纯 ASCII 路径下 |
| 激活(Windows cmd) | .venv\Scripts\activate.bat | 激活后 python 指向该环境 | PowerShell 用 .venv\Scripts\Activate.ps1 |
| 在环境内安装 | python -m pip install -e . | 可编辑安装,改源码立即生效 | 若要走官方 README 路径,则用 python setup.py install,但它装进的是该环境的 site-packages,不带可编辑特性 |
| 确认装的是哪一份 | python -c "import trading_env, os; print(os.path.dirname(trading_env.__file__))" | 打印真实导入路径,这是唯一可靠的判据 | 路径必须指向你的仓库;指向别处说明装的是另一个包或另一个环境 |
| 查是否被 pip 登记 | python -m pip list(找 trading_env) | pip 安装的会出现在列表里 | setup.py install 属旧式安装,不一定出现在 pip list 里——别据此判断有没有装上 |
| 卸载 | python -m pip uninstall trading_env | pip 登记过时可正常卸载 | 旧式安装卸载不干净时,手动清理 site-packages 下的 trading_env 与 trading_env-0.0.1dev0 开头的 egg-info/egg-link,具体路径视安装方式而定 |
| 一次性清干净 | 删除 .venv 目录后重建 | 环境级回滚,最省事 | 记得把仓库里的改动先提交,否则会随环境一起丢 |
setup.py 里 version='0.0.1dev0',但没有发布到 PyPI,所以「装了哪个版本」实际等于「你 clone 到哪个提交」。本页全部实测基于 master HEAD 08bb534(2023-08-12)。TradingGym · FAQ
TradingGym 安装常见问题是什么?
TradingGym 可以用 pip install trading_env 装吗?
不行。实测本机查询 PyPI,trading_env 返回 HTTP 404,说明这个包名没有被发布;同样 404 的还有 tradinggym、TradingGym、tradinggym-env。官方 README 给的唯一路径是 git clone 后执行 python setup.py install。若你已经在某篇文章里看到 pip 写法,请以官方 README 与 PyPI 当前状态为准。
那 pip install trading-gym 装到的是什么?
是另一个项目。实测 PyPI 上 trading-gym 存在(最新 0.1.8),但作者是 mymusise、主页指向 github.com/mymusise/Trading-Gym,与 Yvictor/TradingGym 没有隶属关系,API 与文档也完全不同。装之前用「作者 + 仓库」两个字段核对,比看包名可靠。
装完怎么验证才算成功?
推荐三步:①python -c "import trading_env, os; print(os.path.dirname(trading_env.__file__))" 确认导入路径指向你的仓库;②trading_env.available_envs() 应返回 ['training_v0','training_v1','backtest_v0','backtest_v1'];③在仓库根目录执行 python -m trading_env.test,本机实测 exit 0、用时 0.2658s。注意命令是点号而不是斜杠,官方 CI 配置里的斜杠写法会报 No module named trading_env/test。以上以官方仓库实际代码为准。
Python 3.12 / 3.13 能装吗?
本项目没有声明支持的 Python 版本(setup.py 里没有 python_requires),官方 CI 只覆盖过 Python 3.4 / 3.5 / 3.6,且该 CI(.travis.yml)依赖的 Travis 开源版已停服。本机在 3.11.9 上跑通了官方自测,但这是实测结论、不是官方承诺;更高版本请以你本机实跑结果为准,遇到依赖不兼容时优先考虑 venv 隔离一个较老的 3.11 环境。
Windows 上会遇到哪些额外问题?
本机实测在 Windows 上可正常安装与自测。常见额外问题有三类:①多个 Python 并存导致装错解释器(统一用 python -m pip 并检查导入路径);②路径含中文或空格时命令行参数处理出问题(cd 进目录再用相对脚本名、并先 chcp 65001 可规避);③python setup.py install 写入系统 site-packages 时可能权限不足(改用虚拟环境)。具体以本机实跑为准。
setup.py install 和 pip install -e . 该选哪个?
只读源码、按官方文档走,用 README 写的 python setup.py install;要改 reward、观测列或做实验,用 python -m pip install -e .(可编辑安装,改完不必重装,且更明确地绑定到当前解释器)。两种方式都不解决 as_matrix 兼容问题——那是运行期的事,需要额外两行补丁,见「可运行性」页。选择建议以官方 README 与你的用途为准。