Windows 下配置 SMACv2 + EPyMARL + PyTorch CUDA 的完整流程
1. 背景说明SMACv2 是基于 StarCraft II 的多智能体强化学习测试环境。它不是一个完整的学习框架而是一个多智能体环境负责提供智能体观测、全局状态、可执行动作、奖励、终止信号和场景随机化机制。SMACv2 官方要求将32x32_flat.SC2Map放入SMAC_Maps地图目录这是 SMACv2 程序化生成场景所依赖的基础地图。(GitHub)EPyMARL 是 PyMARL 的扩展版本支持多种多智能体环境包括 SMAC、SMACv2、SMAClite、PettingZoo 和 VMAS 等。EPyMARL 官方也说明SMAC 和 SMACv2 需要本地 StarCraft II 安装和对应地图文件。(GitHub)本文记录在 Windows 平台上配置StarCraft II SMACv2 EPyMARL PyTorch CUDA QMIX 训练流程并最终成功运行QMIX SMACv2 protoss_5_vs_52. 最终环境概况本次配置平台为 Windows核心组件如下操作系统Windows Conda 环境名epymarl_smacv2 StarCraft II 路径D:\Software\StarCraft II EPyMARL 路径D:\HANXU\MARL\epymarl SMACv2 地图路径D:\Software\StarCraft II\Maps\SMAC_Maps\32x32_flat.SC2Map GPUNVIDIA GeForce RTX 5080已验证的关键结果SMACv2 script 测试通过 EPyMARL 能够启动 sc2v2 环境 StarCraft II 能够被 PySC2 调用 QMIX 能够完成短训练 Sacred 日志捕获问题已绕过最终成功运行日志中包含[DEBUG] pymarl Using capture mode no [INFO] my_main Finished Training [INFO] pymarl Completed after 0:05:09这说明训练链路已经完整跑通。3. 安装前准备3.1 安装 Anaconda本文使用 Conda 管理 Python 环境。安装完成后后续所有命令建议在 Anaconda Prompt 或 Conda Prompt 中执行。3.2 安装 GitEPyMARL、SMACv2 和 SMAClite 都需要从 GitHub 获取源码因此需要安装 Git。可以用 Conda 安装conda install git -y也可以安装 Git for Windows。安装后检查git --version4. 安装 StarCraft IISMACv2 底层依赖 StarCraft II因此需要先安装 StarCraft II。本文中的安装路径为D:\Software\StarCraft II建议设置环境变量SC2PATHsetx SC2PATH D:\Software\StarCraft II设置后关闭当前终端重新打开。检查echo %SC2PATH%期望输出D:\Software\StarCraft II5. 安装 SMACv2 地图SMACv2 需要专用基础地图32x32_flat.SC2Map注意这个文件不是普通 SMAC 地图包中的3m、8m、2s3z等固定任务地图。SMACv2 官方明确要求32x32_flat.SC2Map位于SMAC_Maps文件夹中。(GitHub)最终目录结构应为D:\Software\StarCraft II └── Maps └── SMAC_Maps └── 32x32_flat.SC2Map检查地图是否存在dir D:\Software\StarCraft II\Maps\SMAC_Maps\32x32_flat.SC2Map如果路径正确能够看到该.SC2Map文件。6. 新建 Conda 环境为了避免破坏已有环境建议新建专用环境conda create -n epymarl_smacv2 python3.10 -y conda activate epymarl_smacv2升级基础工具python -m pip install --upgrade pip setuptools wheel7. 安装 PyTorch CUDA本文最终使用的是带 CUDA 的 PyTorch。PyTorch 官方提供 CUDA 12.8 的 pip 安装通道。(PyTorch)根据实际环境可以使用pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128安装完成后验证python -c import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))期望输出类似2.x.xcu128 True NVIDIA GeForce RTX 5080只要torch.cuda.is_available()为True说明 PyTorch 已经可以调用 GPU。8. 安装 SMACv2不要使用pip install smacv2该命令可能出现ERROR: Could not find a version that satisfies the requirement smacv2正确方式是从官方 GitHub 仓库安装pip install githttps://github.com/oxwhirl/smacv2.git安装后验证python -c import smacv2; print(smacv2 import ok)如果能正常输出smacv2 import ok说明 Python 包安装完成。9. 固定关键依赖版本为了减少 PySC2、SMACv2 和 EPyMARL 的兼容性问题建议固定以下依赖pip install numpy1.24.4 protobuf3.20.3 scipy1.10.1验证python -c import numpy, google.protobuf, scipy; print(numpy.__version__); print(google.protobuf.__version__); print(scipy.__version__)期望输出1.24.4 3.20.3 1.10.110. 测试 SMACv2 是否能独立运行可以使用一个简单脚本测试 SMACv2 环境是否能启动。示例脚本from smacv2.env.starcraft2.wrapper import StarCraftCapabilityEnvWrapper env StarCraftCapabilityEnvWrapper( capability_config{ n_units: 5, n_enemies: 5, team_gen: { dist_type: weighted_teams, unit_types: [stalker, zealot, colossus], weights: [0.45, 0.45, 0.10], observe: True, }, start_positions: { dist_type: surrounded_and_reflect, p: 0.5, n_enemies: 5, map_x: 32, map_y: 32, }, }, map_nameprotoss_5_vs_5, debugFalse, ) env.reset() terminated False episode_reward 0 while not terminated: actions [] for agent_id in range(env.n_agents): avail_actions env.get_avail_agent_actions(agent_id) valid_actions [i for i, available in enumerate(avail_actions) if available] actions.append(valid_actions[0]) reward, terminated, info env.step(actions) episode_reward reward print(Episode reward:, episode_reward) print(Info:, info) env.close()运行python C:\Users\hx313\PyCharmMiscProject\script.py如果能够正常结束说明SMACv2 包可用 StarCraft II 可启动 SC2PATH 正确 32x32_flat.SC2Map 地图正确11. 安装 EPyMARL创建项目目录cd /d D:\HANXU mkdir MARL cd /d D:\HANXU\MARL克隆 EPyMARLgit clone https://github.com/uoe-agents/epymarl.git cd epymarl安装依赖pip install -r requirements.txt如果后续提示缺少某些包可以补充安装pip install sacred pyyaml matplotlib pandas tensorboard pygame12. 安装 SMAClite第一次运行 EPyMARL 时可能会出现ModuleNotFoundError: No module named smaclite这是因为 EPyMARL 在环境注册时导入了 SMAClite 相关模块。即使当前运行的是sc2v2也可能需要安装smaclite。处理方式cd /d D:\HANXU\MARL git clone https://github.com/uoe-agents/smaclite.git cd smaclite pip install .验证python -c import smaclite; print(smaclite import ok)然后回到 EPyMARL 目录cd /d D:\HANXU\MARL\epymarl13. 第一次运行 EPyMARL SMACv2官方 EPyMARL 支持sc2v2环境配置可以通过--env-configsc2v2运行 SMACv2。官方示例也使用类似python src/main.py --configqmix --env-configsc2v2 with env_args.map_nameprotoss_5_vs_5这一形式运行 SMACv2 任务。(GitHub)首先运行短训练python src/main.py --configqmix --env-configsc2v2 with env_args.map_nameprotoss_5_vs_5 t_max10000 test_interval2000如果看到类似输出Beginning training for 10000 timesteps Launching SC2 t_env: 2000 / 10000 t_env: 4000 / 10000 Finished Training说明训练流程已经启动并完成。14. 处理 PettingZoo 和 VMAS 警告运行时可能出现PettingZoo is not installed, so these environments will not be available VMAS is not installed, so these environments will not be available这些警告可以忽略。原因是当前运行的是--env-configsc2v2并不是 PettingZoo 或 VMAS 环境。不建议为了消除警告而立即安装pip install pettingzoo pip install vmas[gymnasium]因为这些包可能引入新的依赖变化反而破坏当前已经跑通的 SMACv2 训练环境。15. 处理 PyTorch indexing 警告运行时可能出现Using a non-tuple sequence for multidimensional indexing is deprecated对应文件通常是D:\HANXU\MARL\epymarl\src\components\episode_buffer.py这是因为 EPyMARL 旧代码中存在类似target[k][_slices]新版 PyTorch 会提示未来可能需要改成target[k][tuple(_slices)]当前它只是警告不影响训练。短期可以忽略。后续如果长期使用较新版本 PyTorch可以再统一修改episode_buffer.py中的索引写法。16. 处理 Sacred 日志捕获问题第一次成功训练时终端中可能大量出现--- Logging error ---甚至在训练结束阶段出现OSError: [WinError 1] 函数不正确。这不是训练失败而是 Sacred 的输出捕获模式和 Windows 输出流之间存在兼容问题。Sacred 会捕获程序输出并写入results/sacred默认可能使用capture mode fd在 Windows Conda PySC2 StarCraft II 子进程组合下fd捕获模式容易导致 logging 输出异常。正确做法是在命令前加入--captureno最终命令为python src/main.py --captureno --configqmix --env-configsc2v2 with env_args.map_nameprotoss_5_vs_5 t_max10000 test_interval2000成功后日志中会出现[DEBUG] pymarl Using capture mode no此后训练能够正常完成不再出现大量--- Logging error ---。最终成功日志中出现了Using capture mode no、Finished Training和Completed after 0:05:09。注意不要使用capture_modeno这种写法会被 EPyMARL 识别为实验配置项可能报ConfigAddedError: Added new config entry that is not used anywhere正确写法是--captureno17. 处理 run.py 末尾 print 报错如果仍然出现OSError: [WinError 1] 函数不正确。并且报错位置在D:\HANXU\MARL\epymarl\src\run.py例如print(Exiting Main) print(Stopping all threads) print(Exiting script)可以将退出阶段的print()注释掉。打开D:\HANXU\MARL\epymarl\src\run.py将类似代码print(Stopping all threads) for t in threading.enumerate(): if t.name ! MainThread: print(Thread {} is alive! Is daemon: {}.format(t.name, t.daemon)) t.join(timeout1) print(Thread joined) print(Exiting script)改为# print(Stopping all threads) for t in threading.enumerate(): if t.name ! MainThread: # print(Thread {} is alive! Is daemon: {}.format(t.name, t.daemon)) t.join(timeout1) # print(Thread joined) # print(Exiting script)保留线程清理逻辑只关闭退出阶段的终端输出。不过在已经使用--captureno之后这类问题通常不会再出现。18. 检查实验结果是否保存EPyMARL 使用 Sacred 保存实验记录默认保存路径为D:\HANXU\MARL\epymarl\results\sacred查看目录dir results\sacred会看到数字编号目录例如1 2 3 4进入最新编号dir results\sacred\4通常应包含config.json cout.txt metrics.json run.json这些文件分别记录实验配置、终端输出、训练指标和运行状态。19. 最终推荐运行命令后续所有 SMACv2 训练建议统一使用以下格式cd /d D:\HANXU\MARL\epymarl conda activate epymarl_smacv2 python src/main.py --captureno --configqmix --env-configsc2v2 with env_args.map_nameprotoss_5_vs_5 t_max10000 test_interval2000更长一点的测试python src/main.py --captureno --configqmix --env-configsc2v2 with env_args.map_nameprotoss_5_vs_5 t_max200000 test_interval10000如果要测试 VDNpython src/main.py --captureno --configvdn --env-configsc2v2 with env_args.map_nameprotoss_5_vs_5 t_max200000 test_interval10000如果要测试 IQLpython src/main.py --captureno --configiql --env-configsc2v2 with env_args.map_nameprotoss_5_vs_5 t_max200000 test_interval1000020. 当前已完成的配置检查表检查项状态Conda 环境创建已完成PyTorch CUDA 安装已完成SMACv2 安装已完成StarCraft II 路径识别已完成32x32_flat.SC2Map地图配置已完成SMACv2 独立 script 测试已通过EPyMARL 安装已完成SMAClite 缺失问题已处理QMIX sc2v2 启动已通过Sacredfd捕获日志错误已通过--captureno规避训练结果保存已生成results/sacred记录QMIX 短训练已完成21. 总结本次配置的核心流程是安装 StarCraft II ↓ 配置 SC2PATH ↓ 放置 SMACv2 专用地图 32x32_flat.SC2Map ↓ 创建 epymarl_smacv2 Conda 环境 ↓ 安装 PyTorch CUDA ↓ 从 GitHub 安装 SMACv2 ↓ 安装 EPyMARL ↓ 补充安装 SMAClite ↓ 运行 QMIX sc2v2 ↓ 使用 --captureno 解决 Windows Sacred 日志捕获问题最终成功命令为python src/main.py --captureno --configqmix --env-configsc2v2 with env_args.map_nameprotoss_5_vs_5 t_max10000 test_interval2000当终端出现Using capture mode no Finished Training Completed after ...即可确认Windows 下 SMACv2 EPyMARL PyTorch CUDA 的训练链路已经配置完成。

相关新闻

Zotero PDF Translate终极指南:20+翻译服务无缝集成,学术文献阅读效率提升300%

Zotero PDF Translate终极指南:20+翻译服务无缝集成,学术文献阅读效率提升300%

Zotero PDF Translate终极指南:20翻译服务无缝集成,学术文献阅读效率提升300% 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址…

2026/7/11 11:24:42阅读更多 →
MineExplorer动态环境评测:AI模型在《我的世界》中的多跳任务能力分析

MineExplorer动态环境评测:AI模型在《我的世界》中的多跳任务能力分析

在 AI 与游戏环境交互的研究领域,评测模型的真实能力一直是个难题。传统方法往往让模型看静态截图做选择题,但这无法反映模型在动态、连续环境中的规划、执行和纠错能力。MineExplorer 项目正是为了解决这一问题而生,它构建了一个基于《我的世…

2026/7/11 11:24:42阅读更多 →
终极视频加速神器:如何用Video Speed Controller浏览器扩展提升学习工作效率

终极视频加速神器:如何用Video Speed Controller浏览器扩展提升学习工作效率

终极视频加速神器:如何用Video Speed Controller浏览器扩展提升学习工作效率 【免费下载链接】videospeed HTML5 video speed controller (for Google Chrome) 项目地址: https://gitcode.com/gh_mirrors/vi/videospeed 还在为在线视频播放速度太慢而烦恼吗&…

2026/7/11 11:24:42阅读更多 →
从CPU到GPU:YOLO推理加速全指南,5种方案实测对比与避坑实录

从CPU到GPU:YOLO推理加速全指南,5种方案实测对比与避坑实录

摘要:模型训练得再好,部署时推理慢成PPT也是白搭。本文不讲枯燥的CUDA原理,直接从工程落地视角出发,梳理YOLO从纯CPU推理到GPU极致加速的完整演进路径。涵盖OpenVINO、ONNX Runtime、TensorRT、NCNN等主流方案,附带真实…

2026/7/11 12:24:47阅读更多 →
终极指南:如何一键搞定所有Visual C++运行库安装难题

终极指南:如何一键搞定所有Visual C++运行库安装难题

终极指南:如何一键搞定所有Visual C运行库安装难题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在安装游戏或专业软件时,突…

2026/7/11 12:24:47阅读更多 →
Gemini 3.5 Agent 能力实测:自动化工作流完整流程与效果分析

Gemini 3.5 Agent 能力实测:自动化工作流完整流程与效果分析

概要 Gemini 3.5 的 Agent 能力让它不只是一个"聊天工具",而是一个"能干活的助手"——它可以自主拆解任务、调用工具、闭环执行。但"能做"和"能做好"之间有明显差距。实测发现,Gemini 3.5 在简单任务的自动化上…

2026/7/11 12:24:47阅读更多 →
实用指南:如何在Windows上实现SSL证书自动化管理

实用指南:如何在Windows上实现SSL证书自动化管理

实用指南:如何在Windows上实现SSL证书自动化管理 【免费下载链接】win-acme Automate SSL/TLS certificates on Windows with ease 项目地址: https://gitcode.com/gh_mirrors/wi/win-acme 想要为你的Windows服务器和IIS网站轻松获取免费的SSL证书吗&#xf…

2026/7/11 12:24:47阅读更多 →
小i约球诞生记02:做附近球友匹配时,LBS 能力怎么选

小i约球诞生记02:做附近球友匹配时,LBS 能力怎么选

本文是「小i约球诞生记」系列文章之一。 小i约球是一个微信小程序,主要帮乒乓球、羽毛球、台球、网球爱好者找到附近合适的球友。本文从一个具体技术或产品问题切入,记录约球小程序从 0 到 1 过程中的设计取舍。前言 做“附近球友”这个功能时&#xff0…

2026/7/11 12:24:47阅读更多 →
为什么顶尖AI团队已弃用GPT-4 Turbo?Gemini 2.5 Pro在逻辑链完整性、跨文档引用溯源、符号推理准确率上实现代际碾压——附可复现测评代码库(Star超5k,仅开放72小时)

为什么顶尖AI团队已弃用GPT-4 Turbo?Gemini 2.5 Pro在逻辑链完整性、跨文档引用溯源、符号推理准确率上实现代际碾压——附可复现测评代码库(Star超5k,仅开放72小时)

更多请点击: https://intelliparadigm.com 第一章:Gemini 2.5 Pro的架构跃迁与代际定位 Gemini 2.5 Pro并非简单迭代,而是Google在多模态大模型演进路径上的一次结构性重构。其核心突破在于引入**分层推理引擎(Hierarchical Reas…

2026/7/11 12:19:46阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/10 12:10:00阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/10 12:29:21阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/10 4:59:05阅读更多 →
Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

1. 为什么2025版PR安装比以往更“磨人”?——从弹窗警告到路径陷阱的真实处境 Premiere Pro 2025版不是简单的一次版本迭代,它是一道分水岭。我从去年底开始帮影视工作室、高校剪辑实验室和自由职业者部署2025环境,累计处理了137台设备&#…

2026/7/11 0:03:43阅读更多 →
5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效 【免费下载链接】open-source-mac-os-apps 🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps 项目地址: https://gitcode.com/gh_mirrors/op/open-so…

2026/7/11 0:03:43阅读更多 →
5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI图像生成真正听从你的指挥吗&…

2026/7/11 0:03:43阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/10 13:39:09阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/10 22:20:33阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/10 17:29:22阅读更多 →