分享 | 搞定 nes-py 安装:一次完整的踩坑与填坑实录
问题描述昨天想跑个马里奥的强化学习 demo需要装 nes-py这个库。结果一个简单的 pip install nes-py硬是让我跟 Windows 的 C 编译环境搏斗了一晚上一上午。网上搜到的方案比较零散干脆把自己的完整解决过程记录下来希望后来者能少走点弯路。总结本人电脑环境复杂安装东西喜欢私自更改路径导致各种环境变量群魔乱舞如果你是一个直接按照默认路径安装的乖宝宝大概率是不会遇到下面的问题我是根据B站的一个up主 算法路飞 的教程来走的这个up主也专门出了一个视频来解决这类报错2.5-依赖问题_哔哩哔哩_bilibili就是用VS Studio的安装器把使用 C 的桌面开发Desktop development with C的组件给安装了就能用然而我很早之前不久已经安装了这个吗怎么会报错然后我根据网上其他教程用图中这玩意安装然后出现了下面的报错没截图见谅此时不应有 \Windows于是遂将VS Studio卸了重装原本装在D盘的现在直接安装在C盘默认路径这下应该没问题了吧然后还是有报错C:\Users\我的用户名where cl信息: 用提供的模式无法找到文件。何意味还是找不到编译器下面是完整的处理过程包括实现对nes-py库的安装和对上面报错的根治1 绕过vcvarsall.bat把库装上再说C编译组件肯定是安装了的只是环境变量无法使用。经过调查是vcvarsall.bat报错导致pip安装编译的时候找不到cl.exeC:\Users\我的用户名where cl信息: 用提供的模式无法找到文件。因此决定绕过报错的vcvarsall.bat进行安装vcvarsall.bat的本质是一个批处理脚本其核心任务是为当前命令行会话设置一系列编译所需的环境变量主要包括PATH: 添加编译器cl.exe、链接器link.exe和资源编译器rc.exe等工具所在的目录。INCLUDE: 指定C/C标准库及Windows SDK头文件的搜索路径。LIB: 指定链接时所需的库文件.lib的搜索路径。当这个脚本因为系统环境变量中残留的旧配置如包含括号()的路径而报错“此时不应有 \Windows”时我们无需修复脚本本身而是可以手动侦察工具链的实际位置并直接设置上述环境变量从而达到完全相同的效果。因此打开一个新的cmd直接手动设置PATH、INCLUDE和LIBset PATHcl.exe 所在目录;rc.exe 所在目录;%PATH% set INCLUDEMSVC的include目录;SDK的ucrt目录;SDK的um目录;SDK的shared目录;SDK的winrt目录;SDK的cppwinrt目录 set LIBMSVC的x64库目录;SDK的ucrt\x64库目录;SDK的um\x64库目录这是我的如果默认安装地址差不多路径文件夹找出来一个一个复制就行set PATHC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem; set PATHC:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64;%PATH% set INCLUDEC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um set LIBC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\lib\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x64剧透一下问题出在这里很可能是这里的(x86)导致vcvarsall.bat报错set PATHC:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64;%PATH%然后conda activate super_mario pip install nes-py特定的版本终于安装成功2 如何解决“此时不应有 \Windows”我自己的问题非要安装到D盘环境变量是我自己配置的后面卸载了安装到C盘原有环境变量还在因此需要删除之前手动配置在PATH、INCLUDE和LIB中多余的环境变量一开始运行 pip install nes-py就报错指向 cl.exe执行失败。我试着手动跑一下 vcvarsall.bat来初始化环境结果终端直接弹出一句\Windows 此时不应有 \Windows看了网上的各种分析应该是环境变量的问题。我检查了系统环境变量果然以前图省事在 INCLUDE和 LIB里手动添加了 VS 和 Windows SDK 的路径比如C:\Program Files(x86)\Windows Kits\10\...问题就出在这个(x86)的右括号)上。vcvarsall.bat这个脚本内部用了很多 if (...) (...)的语法当它展开环境变量时这个 )会被误认为是代码块结束的标记直接导致脚本解析崩溃。这两个指向旧版工具不需要永久留在 PATH 里vcvarsall.bat 会自动加正确版本的直接删掉ok完美总结一下这次踩坑的根本原因就是手动配置编译环境变量埋下的雷。不仅容易因为路径里的括号引发语法错误还会在软件升级后导致版本错乱。

相关新闻

打工人2026年效率大提升!OpenClaw(Clawdbot)轻松安装指南

打工人2026年效率大提升!OpenClaw(Clawdbot)轻松安装指南

打工人2026年效率大提升!OpenClaw(Clawdbot)轻松安装指南。OpenClaw(前身为Clawdbot/Moltbot)作为开源、本地优先的AI助理框架,凭借724小时在线响应、多任务自动化执行、跨平台协同等核心能力,成…

2026/7/3 7:50:54 阅读更多 →
如何选择合适的单北斗GNSS厂家进行变形监测?

如何选择合适的单北斗GNSS厂家进行变形监测?

选择合适的单北斗GNSS厂家对于变形监测至关重要。本段将简要概述单北斗GNSS的核心应用领域及其技术优势。单北斗GNSS系统不仅用于基础设施的监测,如桥梁和隧道等大型建设项目,还广泛应用于地质灾害预警,有效减少潜在危险。通过实时监测土壤和…

2026/7/5 16:34:43 阅读更多 →
【Svelte】事件管理

【Svelte】事件管理

在 Svelte 5 中,由于官方已经彻底废弃 createEventDispatcher,推荐使用 callback props 模式进行组件间通信。但当你的应用逐渐变大、组件层级变深、或者存在“非父子关系”的松耦合模块通信需求时,单纯依赖 callback props 会导致 prop dril…

2026/5/17 9:30:34 阅读更多 →

最新新闻

解放双手:如何用Java自动化引擎让炉石传说每日任务效率提升300%?

解放双手:如何用Java自动化引擎让炉石传说每日任务效率提升300%?

解放双手:如何用Java自动化引擎让炉石传说每日任务效率提升300%? 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本) 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Script 你是否厌倦了每…

2026/7/6 5:58:45 阅读更多 →
Linux文件权限进阶:基于属性的加密(CP-ABE)实战技巧

Linux文件权限进阶:基于属性的加密(CP-ABE)实战技巧

1. 项目概述:当文件权限管理遇上属性加密在Linux系统管理员的日常工作中,文件权限管理是基础中的基础。我们熟知的chmod 755、chown user:group,以及ACL(访问控制列表),构成了一个相对稳固但略显僵化的权限…

2026/7/6 5:58:45 阅读更多 →
JMeter性能测试实战指南:从场景到环境搭建的完整流程

JMeter性能测试实战指南:从场景到环境搭建的完整流程

1. 项目概述:为什么性能测试是每个技术团队的必修课最近在带团队做项目复盘,发现一个挺有意思的现象:很多开发同学对功能测试、单元测试门儿清,但一提到性能测试,要么觉得是测试工程师的活儿,要么就觉得“等…

2026/7/6 5:58:45 阅读更多 →
混合注意力(Channel+Spatial)替代SE模块:mAP涨2.3%但计算量只增5%的魔法

混合注意力(Channel+Spatial)替代SE模块:mAP涨2.3%但计算量只增5%的魔法

一、深夜调参现场:SE模块为什么突然“失灵”了? 凌晨两点,我盯着终端里跳动的mAP曲线,第37次实验的验证集损失突然在epoch 80处反弹。隔壁工位的同事早已趴在桌上睡着,键盘上还压着半杯冷掉的咖啡。这是我在YOLOv11上尝试混合注意力机制的第三周——SE、CBAM、ECA、CA、S…

2026/7/6 5:52:43 阅读更多 →
桌面AI客户端Chatbox:构建多模型智能工作站的实战指南

桌面AI客户端Chatbox:构建多模型智能工作站的实战指南

桌面AI客户端Chatbox:构建多模型智能工作站的实战指南 【免费下载链接】chatbox Powerful AI Client 项目地址: https://gitcode.com/GitHub_Trending/ch/chatbox Chatbox是一款功能强大的桌面AI客户端,支持OpenAI、Claude、Chatbox AI、Ollama和…

2026/7/6 5:52:43 阅读更多 →
Navicat无限试用终极指南:告别14天限制的3种简单方法

Navicat无限试用终极指南:告别14天限制的3种简单方法

Navicat无限试用终极指南:告别14天限制的3种简单方法 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 你是否也曾为…

2026/7/6 5:52:43 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻