位置: IT常识 - 正文

“Ninja is required to load C++ extensions”解决方案

编辑:rootadmin
“Ninja is required to load C++ extensions”解决方案 问题描述Ninja is required to load C++ extensions

推荐整理分享“Ninja is required to load C++ extensions”解决方案,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在跑一份代码时,由于该代码中需要调用 torch/utils/cpp_extension.py 文件,而此时又未安装ninja库,所以会出现如下错误:

RuntimeError: Ninja is required to load C++ extensions

此时问题只在于未安装ninja库,解决方法如下:

pip install ninja

PS 什么是Ninja?

在传统的 C/C++ 等项目构建时,通常会采用 make 系统使用 Makefile 文件来进行整个项目的编译构建,通过 Makefile 中指定的编译所依赖的规则使得程序的构建非常简单,并且在复杂项目中可以避免由于少部分源码修改而造成的很多不必要的重编译。但是它仍然不够好,因为其大而且复杂,有时候我们并不需要 make 那么强大的功能,相反我们需要更灵活,速度更快的编译工具。Ninja 作为一个新型的编译工具,小巧而又高效,它就是为此而生

也就是说,Ninja 是一个构建系统,与 Make 类似,但是其最为重要的一个优点就是它的灵活性与高效性,能够实现一些必要的功能而不臃肿。

Your compiler (c++) is not compatible with the compiler Pytorch was built with for this platform, which is g++ on linux“Ninja is required to load C++ extensions”解决方案

当安装了ninja库后,会发现又有新的问题出现,具体问题如下: 正如上图所示,服务器默认使用的编译器为c++,而Pytorch使用的是g++编译器,此时无法通过服务器上的c++ compiler去编译Pytorch中的cpp extension,所以会出现warning,并无法进行后续的操作。

解决方法

首先进行问题的分析,发现其实只要让服务器使用g++去进行Pytorch的编译就不会报错了。而要使用g++,首先需要判断服务器中是否安装,故可以使用 whereis 命令去查找,效果如下:

可以发现,服务器中包含g++以及c++,只是默认会使用c++ compiler,所以会和Pytorch的编译工具产生冲突,故目前只需要在当前用户下修改服务器的默认c++编译器,就能解决该问题,具体解决方法如下:可以在bash下输入该指令,这表明当前连接退出后就失效,也可以将其写入.bashrc文件中,这样就能永久生效。

export CXX=g++

该方法是将当前用户环境变量中所有符合CXX(XX表示任意字符)模式的字符替换成g++,所以c++也会被替换成g++,故能有效解决该编译器冲突问题。

PS Linux中export命令详解

export命令的功能为设置或显示环境变量。具体的细节可以参考该博客

参考链接

g++/c++ compiler incompatibility · Issue #974 · NVIDIA/apex (github.com)

如何查看Linux是否安装了gcc和gcc-c++ - 关键步就几步 - 博客园 (cnblogs.com)

使用 Ninja 代替 make - 简书 (jianshu.com)

本文链接地址:https://www.jiuchutong.com/zhishi/293019.html 转载请保留说明!

上一篇:Vue实战【后端返回文件流时,前端如何处理并成功下载流文件】(vue的后端)

下一篇:React18的useEffect会执行两次

  • 职工享受工伤津贴的条件
  • 购买车位的税费是多少钱
  • 销售收入不含税怎么计算增值税额
  • 车险退到对公账户会计分录是
  • 个体工商户发票额度
  • 发票不走账对哪方有害
  • 公务员工资待遇标准表
  • 汽车折旧年限 税法
  • 租赁房屋增值税
  • 零息债券支付利息吗
  • 商品流通企业成本核算的内容包括
  • 税金及附加多计提了汇算清缴怎么办
  • 应纳出口关税怎么算
  • 小规模企业所得税会计分录怎么做
  • 什么是差额增收
  • 房租费用在本年内可以不摊销吗?
  • 应收账款补提坏账是什么意思
  • 审工资的流程
  • 支付房屋租金计入什么会计科目
  • 个体户生产经营所得税税率表
  • 个体户要申报哪些报表
  • 其他收益是否缴纳个税
  • 购进药材如何抵扣进项税额
  • 医院行业类别怎样填写
  • 外地预缴的企业所得税可以退吗
  • 个人交汽车购置税流程
  • 财产清查账务处理步骤
  • 苹果手机发票要验证码吗
  • 法人转钱进公账可以吗
  • 诊所免税政策
  • 个体工商户是小微吗
  • 材料没有入库
  • 认缴出资日期没到
  • 小规模企业没有成本票怎么办
  • 气泡星云图片
  • 工业用地被政府征收怎么补偿
  • 带息票据和不带息票据区别
  • 如何将tomcat卸载干净
  • 线性回归csdn
  • 投资性房地产在资产负债表哪个科目
  • 哪些可以计入研发费用
  • 内账增值税怎么计提
  • java事件处理机制三个重要概念
  • 购买商标入账
  • 失控票要在抵扣当月转出吗
  • 税局代个人开增值税普通票样板
  • 出口企业申报退税不再提供纸质
  • mysql数据库访问速度慢的解决方法
  • sql表添加字段
  • 会计和税法折旧年限不相同
  • 知道商品的进价怎么定售价
  • 认缴股权的转让
  • 专项资金支出时间规定
  • 差旅费报销过程中会计和出纳分别做什么
  • 金蝶软件中怎么让以前年度损益调整在利润表中取不到数
  • 以前年度的销售退回能否直接冲减销售收入
  • 企业给予第三方补贴
  • 暂估应付账款余额调整
  • 远程认证软件可以卸载吗
  • 违反会计规定承担责任
  • centos7+
  • xp系统英文版怎么改成中文
  • xp电脑如何在网页打开
  • macos sierra怎么升级到big sur
  • winpe安装系统教程
  • win8提升模式
  • Win7系统打开蓝牙
  • 'GL_COMBINE_ARB' : undeclared 'GL_RGB_SCALE_ARB' : undeclared 问题
  • perl 获取数据库查询结果
  • js区分浏览器页面大小
  • 安卓deprecated
  • express app.js
  • javascript in
  • 税控盘丢失怎么写情况说明
  • 日本消费税是什么
  • 营改增后一般纳税人动产租赁税率
  • 江苏叉车考试
  • 跨区迁移税务需要注销吗?
  • 上市股票转为非上市
  • 煤老板的苦恼
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设