解决nes_py在pip安装报错的问题

news2024/11/27 20:40:04

目录

项目场景:

问题描述

原因分析:

解决方案:

解决结果:


项目场景:

想跟随油管某视频复现强化学习方法玩超级马里奥的过程,结果在在Anaconda3虚拟环境中用pip安装nes_py时一直报错,报错信息如下:

  Building wheel for nes-py (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [21 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-37
      creating build\lib.win-amd64-cpython-37\nes_py
      copying nes_py\nes_env.py -> build\lib.win-amd64-cpython-37\nes_py
      copying nes_py\_image_viewer.py -> build\lib.win-amd64-cpython-37\nes_py
      copying nes_py\_rom.py -> build\lib.win-amd64-cpython-37\nes_py
      copying nes_py\__init__.py -> build\lib.win-amd64-cpython-37\nes_py
      creating build\lib.win-amd64-cpython-37\nes_py\app
      copying nes_py\app\cli.py -> build\lib.win-amd64-cpython-37\nes_py\app
      copying nes_py\app\play_human.py -> build\lib.win-amd64-cpython-37\nes_py\app
      copying nes_py\app\play_random.py -> build\lib.win-amd64-cpython-37\nes_py\app
      copying nes_py\app\__init__.py -> build\lib.win-amd64-cpython-37\nes_py\app
      creating build\lib.win-amd64-cpython-37\nes_py\wrappers
      copying nes_py\wrappers\joypad_space.py -> build\lib.win-amd64-cpython-37\nes_py\wrappers
      copying nes_py\wrappers\__init__.py -> build\lib.win-amd64-cpython-37\nes_py\wrappers
      running build_ext
      building 'nes_py.lib_nes_env' extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for nes-py
  Running setup.py clean for nes-py
Failed to build nes-py
Installing collected packages: nes-py, gym_super_mario_bros
  Running setup.py install for nes-py ... error
  error: subprocess-exited-with-error

  × Running setup.py install for nes-py did not run successfully.
  │ exit code: 1
  ╰─> [23 lines of output]
      running install
      D:\Anaconda3\envs\rlgame\lib\site-packages\setuptools\command\install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        setuptools.SetuptoolsDeprecationWarning,
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-37
      creating build\lib.win-amd64-cpython-37\nes_py
      copying nes_py\nes_env.py -> build\lib.win-amd64-cpython-37\nes_py
      copying nes_py\_image_viewer.py -> build\lib.win-amd64-cpython-37\nes_py
      copying nes_py\_rom.py -> build\lib.win-amd64-cpython-37\nes_py
      copying nes_py\__init__.py -> build\lib.win-amd64-cpython-37\nes_py
      creating build\lib.win-amd64-cpython-37\nes_py\app
      copying nes_py\app\cli.py -> build\lib.win-amd64-cpython-37\nes_py\app
      copying nes_py\app\play_human.py -> build\lib.win-amd64-cpython-37\nes_py\app
      copying nes_py\app\play_random.py -> build\lib.win-amd64-cpython-37\nes_py\app
      copying nes_py\app\__init__.py -> build\lib.win-amd64-cpython-37\nes_py\app
      creating build\lib.win-amd64-cpython-37\nes_py\wrappers
      copying nes_py\wrappers\joypad_space.py -> build\lib.win-amd64-cpython-37\nes_py\wrappers
      copying nes_py\wrappers\__init__.py -> build\lib.win-amd64-cpython-37\nes_py\wrappers
      running build_ext
      building 'nes_py.lib_nes_env' extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> nes-py

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

问题描述

从上面的报错信息可以得知,我们的问题在于没有找到wheel,说明本地没有相关配置。而最后一行也告诉我们提示:不是pip的问题,而是上述提到的包(nes)的问题,所以看上面的报错信息找原因。

原因分析:

error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

发现上述一行报错信息:说明我们本地缺少msvc的组件。

原来是我前段时间为了给C盘瘦身,把VS给全部清理了,因为目前主要精力在Python上。

那这就好办了,去他给的官网下载就是了。


解决方案:

下载官网文件

https://download.visualstudio.microsoft.com/download/pr/0502e0d3-64a5-4bb8-b049-6bcbea5ed247/d7293c5775ad824c05ee99d071d5262da3e7653d39f3ba8a28fb2917af7c041a/vs_BuildTools.exe

下载完成以后是VS Installer,这次我们修改安装路径,不要放C盘了,我们在D盘新建文件夹叫Workspace,把其余路径原封不动搞进去

刚刚安装忘记截图了,总之就是这个路径,vs文件夹下还有个package文件夹,一共两个路径。

最后点击安装就完成了! 

注意一定要勾选C++桌面开发 


解决结果:

安装依赖以后成功安装 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/180486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Python实现的图像文字识别OCR工具,包含GUI界面附完整版代码可直接运行

引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作、生活中常常会用到,比如票据、漫画、扫描件、照片的文本提取。 博主基于 PyQt + labelme + PaddleOCR 写了一个桌面端的 OCR 工具,用于快速实现图片中文本区域自动检测 + 文本自动识别。 识别效果如下图所示:…

总结JDK中的时间日期类

在学习SpringMVC时,遇到了接收时间日期类型的参数的案例。 回顾JDK中与时间日期相关的API。 来系统地学习一下日期时间相关的API。 前置知识 在世界上有统一的时间标准 格林尼治时间,简称GMT(以伦敦的本初子午线为标准)&#x…

【BTC】数据结构

BTC 中对交易数据的存储主要涉及到了两种数据结构,一种是区块链,一种是 Merkle Tree。这两种数据结构组成了 BTC 中完整的区块链结构(如下图所示),共同完成对数据的存储和验证,确保交易的有效性。 一、区块…

常见的反爬手段和解决思路

常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原因了解 服务器常反什么样的爬虫了解 反爬虫领域常见的一些概念了解 反爬的三个方向了解 常见基于身份识别进行反爬了解 常见基于爬虫行为进行反爬了解 常见基于数据加密进行反爬 1 服务器反爬的原因 爬虫占总PV(PV是指…

基于nodejs+vue的中国古诗词的设计与实现

目 录 摘要 I Abstract II 1 绪论 1 1.1 选题背景 1 1.2 选题意义 1 1.3 研究内容 2 2 相关技术介绍 3 3 系统分析 5 3.1可行性分析 5 3.1.1 操作可行性 5 3.1.2 经济可行性 5 3.1.3 技术可行性 5 3.2 需求分析 5 3.2.1非功能性需求 …

Python学习——(数据类型及其常用函数)

目录 一、数据类型 判断数据类型type() 二、数据类型的转换 三、运算符 (一)算数运算符 (二)赋值运算符 (三)复合赋值运算符 (四)比较运算符 (五)逻辑运算符 四、输入输出 (一)输出 (二)输入 五、各数据类型常用函数 (一)数值函数 1.绝对值abs(x) 2.最大值max(…

Git + Jenkins 自动化 NGINX 发布简易实现

概述 之前基于 GitLab Jenkins 实现了简单的 NGINX 的自动化发布。 具体包含如下的组件: GitLab包括 GItLab 的 WebHook; Jenkins 及其插件:Generic Webhook TriggerPublish Over SSH 🧠疑问: 为什么不用 Ansible&…

算法训练营DAY44|518. 零钱兑换 II、377. 组合总和 Ⅳ

这两道题是对于完全背包题型的另一个维度,都是求解给定背包容量求装满背包最多有几种方法的题目。两道题十分相像,但在遍历顺序上却又有着极其微妙的差别。 518. 零钱兑换 II - 力扣(LeetCode)https://leetcode.cn/problems/coin…

看完流浪地球2,这些功课你必须要补

昨天看了流浪地球2,里面的信息量太大了,回来补充了一些功课,这些知识,看完,才算对流浪地球2有了进一步了解。地球人的航天路径我们的太空航程是什么样子的呢?要从第二次世界大战开始。回形针计划&#xff1…

金仓数据库简单巡检与事务阻塞会话简单处理

查看KES版本信息 使用version函数查看 这种方式能详细显示信息 使用ksql查看 查看license有效期 查看实例启动时间和运行时长 查看实例启动时间 查看KES无故障运行时长 查看数据库列表 使用元命令\l查看 使用字典查看 查看数据库占用的磁盘空间 统计当前数据库所占的磁盘空…

chrome在爬虫中的使用

chrome浏览器使用方法介绍 学习目标 了解 新建隐身窗口的目的了解 chrome中network的使用了解 寻找登录接口的方法 1 新建隐身窗口 浏览器中直接打开网站,会自动带上之前网站时保存的cookie,但是在爬虫中首次获取页面是没有携带cookie的,这…

Wireshark TS | Packet Challenge 之 FTP 案例分析

前言 来自于 Sharkfest Packet Challenge 中的一个数据包案例,Sharkfest 是 Wireshark 官方组织的一年一度的大会,致力于在 Wireshark 开发人员和用户社区之间分享知识、经验和最佳实践。印象中早期是一年一次,近几年发展成一年两次&#xf…

【华为上机真题】工号不够用咋办

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

2D测量 Metrology——

基本流程: 1,创建计量模型 create_metrology_model (MetrologyHandle) 2,设置计量模型的图像大小 set_metrology_model_image_size (MetrologyHandle, Width, Height) 3,将计量对象添加至计量模型中.(矩形,直线,圆,椭圆) add_metrology_object_rectangle2_measure  //矩形…

【高并发】- 指标介绍

什么是高并发 高并发系统有哪些关键指标 高并发系统介绍 本文主要讲解高并发系统的概念,在实际开发过程中为什么要使用高并发系统,相比于传统系统,能带来怎样的改变。 1.1 高并发介绍 高并发(Hign Concurrency)&#…

Linux常用命令——sed命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) sed 功能强大的流式文本编辑器 补充说明 sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存…

剖析“类和对象” (下) -------- CPP

学习完“类和对象”(上)【剖析“类和对象” (上) -------- CPP】和(中)【剖析“类和对象” (中) -------- CPP】,相信各位同学对CPP中类与对象的理解或多或少都加深了一点。 本篇博客将和大家一同再次学习CPP中类和对象的知识点,跟随本篇博客的脚步定能…

Java两大工具库:Commons和Guava(1)

您好,我是湘王,这是我的CSDN博客。值此新春佳节,我给您拜年啦~祝您在新的一年中所求皆所愿,所行皆坦途,展宏“兔”,有钱“兔”,多喜乐,常安宁!Java的成功很大…

Kettle(8):删除组件

删除组件能够按照指定条件,将表中的数据删除。 1 需求 有以下一个文本文件,文本文件包含了要删除的两个用户id: id 392456197008193000 267456198006210000 需要使用Kettle将文本文件中两个ID对应的t_user1表的数据删除。 2 构建Kettle数据流图 效果图: 1 将文本文件输…

【算法突击】动态规划系列 (一)| 程序员面试 | 最大子数组和 | 最长递增子序列 | 最长公共子序列

【算法突击】动态规划系列 (一)| 程序员面试 | 最大子数组和 | 最长递增子序列 | 最长公共子序列 文章目录【算法突击】动态规划系列 (一)| 程序员面试 | 最大子数组和 | 最长递增子序列 | 最长公共子序列1. 最大子数组和1.1 题目…