位置: 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会执行两次

  • 荣耀手机录音在哪里找(荣耀手机录音在哪里开)

    荣耀手机录音在哪里找(荣耀手机录音在哪里开)

  • 爱奇艺随刻版怎么签到(爱奇艺随刻版怎么开小窗口)

    爱奇艺随刻版怎么签到(爱奇艺随刻版怎么开小窗口)

  • 魅族怎么样(魅族怎么样长截图)

    魅族怎么样(魅族怎么样长截图)

  • 钉钉群里下载的文件在哪里(钉钉群 下载)

    钉钉群里下载的文件在哪里(钉钉群 下载)

  • 怎么关闭qq资料封面(怎么关闭QQ资料卡点赞功能)

    怎么关闭qq资料封面(怎么关闭QQ资料卡点赞功能)

  • 优酷花芝卡是什么意思(优酷花之卡怎么查看)

    优酷花芝卡是什么意思(优酷花之卡怎么查看)

  • 华为p30的智能遥控在哪里(华为p30智能遥控不见了)

    华为p30的智能遥控在哪里(华为p30智能遥控不见了)

  • 拼多多虚假发货警告一次对商品有什么影响(拼多多虚假发货是什么意思举例说明)

    拼多多虚假发货警告一次对商品有什么影响(拼多多虚假发货是什么意思举例说明)

  • 滴滴合规认证必须要吗(滴滴合规认证必须要做吗)

    滴滴合规认证必须要吗(滴滴合规认证必须要做吗)

  • 抖音注销7天内可以登录么(抖音注销7天内登录还会被注销么)

    抖音注销7天内可以登录么(抖音注销7天内登录还会被注销么)

  • ns接电视为什么没信号(ns连接电视不稳定)

    ns接电视为什么没信号(ns连接电视不稳定)

  • 抖音不小心刷新了怎么看上个视频(抖音不小心刷新了怎么找上一个视频)

    抖音不小心刷新了怎么看上个视频(抖音不小心刷新了怎么找上一个视频)

  • 华为手机的测距仪在那(华为手机的测距功能在哪里)

    华为手机的测距仪在那(华为手机的测距功能在哪里)

  • vue字幕字太小怎么调(vue字幕怎么移动位置)

    vue字幕字太小怎么调(vue字幕怎么移动位置)

  • 一个抖音币多少人民币(一个抖音币多少钱人民币)

    一个抖音币多少人民币(一个抖音币多少钱人民币)

  • word开始选项卡在哪里(word开始选项卡不能完成的任务)

    word开始选项卡在哪里(word开始选项卡不能完成的任务)

  • 华为wifi放大器有用吗(华为wifi放大器怎么连接)

    华为wifi放大器有用吗(华为wifi放大器怎么连接)

  • 如何进入tplink(如何进入tplink路由器管理界面)

    如何进入tplink(如何进入tplink路由器管理界面)

  • 网易云为什么下载不了(网易云为什么下载不了歌曲)

    网易云为什么下载不了(网易云为什么下载不了歌曲)

  • 1.5匹空调多少平方(1.5匹空调多少平方电线够用)

    1.5匹空调多少平方(1.5匹空调多少平方电线够用)

  • pbcm10是什么手机(pegm10是什么手机)

    pbcm10是什么手机(pegm10是什么手机)

  • dell笔记本如何定制(dell笔记本如何分区)

    dell笔记本如何定制(dell笔记本如何分区)

  • 小度蓝牙音箱怎样操作(小度蓝牙音箱怎么开机)

    小度蓝牙音箱怎样操作(小度蓝牙音箱怎么开机)

  • nx541j是什么机型(nx591j是什么型号)

    nx541j是什么机型(nx591j是什么型号)

  • 5g能改变什么(将来的5g能改变我们什么生活)

    5g能改变什么(将来的5g能改变我们什么生活)

  • 苹果6不支持电信卡吗(苹果6不支持电信卡怎么解决)

    苹果6不支持电信卡吗(苹果6不支持电信卡怎么解决)

  • 电脑文件打不开怎么回事(电脑文件打不开了)

    电脑文件打不开怎么回事(电脑文件打不开了)

  • 安保服务税点
  • 哪些情形免征契税
  • 旧机器设备出口
  • 二手房个人所得税是买方交还是卖方交
  • 其他权益工具投资借贷方向
  • 个人住房租赁给单位怎么交税
  • 汇兑损益现金流量表列示
  • 甲是乙公司依法设立的分公司
  • 公司给离职员工多发工资怎么办
  • 国资委无偿划拨资产不上税吗
  • 收到保险赔款是什么意思
  • 增值税发票暂时无法查看怎么回事
  • 增值税有差额如何调账
  • 销售新的固定资产怎么算
  • 分公司注销分配表
  • 小型微利企业的
  • 设备采购计入什么科目
  • 政府性基金收入来源三种
  • 华为鸿蒙harmonyos官网4.0
  • 简单制作教程
  • 富士通FUJITSU笔记本电脑开机进入BIOS的方法(F2)
  • 新空调的安装费是多少
  • 水资源税收费标准
  • 关于出售使用过的东西
  • 建筑业营改增后税务问题
  • 库存现金盘盈怎么做账
  • 发行通告
  • pytorch1.5
  • vue-router + element-plus实现面包屑导航栏和路由标签栏
  • 缴纳残保金会计分录最新
  • MySQL分表和分区最佳攻略
  • while循环语法结构
  • linux中搭建web服务器
  • 期初未分配利润在哪个表
  • python3中rindex用法
  • SQLite优化方法
  • 抵扣联和发票联算一张发票吗
  • 政府补助的相关法律法规
  • 15个postgresql数据库实用命令分享
  • 专项附加扣除哪种申报方式好
  • 生产成本明细科目有哪些内容
  • 预付账款指的是哪些
  • 财务人员办理会计事项必须复制或取得原始凭证
  • 印花税不足一元免征吗
  • 营改增行业销售额的确定
  • 科研经费的间接费用会审核吗
  • 什么是增值税的销项税额
  • 未分配利润转增股本
  • 成品油发票如何下载库存
  • 如何解决私账流失问题
  • 购进生产车间增值税税率
  • 农产品加计扣除1%怎么计算和会计分录
  • 留抵税额和待抵扣进项税额区别
  • 视同销售但未收到钱怎么做账?
  • 增值税免税入账
  • 盈余公积根据什么确定
  • 如何设置sql server
  • mysql使用的协议
  • mysql5.7压缩包
  • windows2000怎么安装
  • Windows 7 64位系统手动添加Editplus到鼠标右键的方法
  • linux修改密码认证令牌错误
  • win8系统笔记本怎么恢复出厂设置
  • 防止linux断电系统崩溃
  • 音频焦点是什么
  • shell脚本-lt
  • javascript中怎么创建一个数组
  • html如何用css
  • shell脚本编程实例
  • python 技巧总结
  • js每天的定时任务
  • unity导入设置在哪里
  • 判断页面是关闭还是开启
  • android 5.1 WIFI图标上的感叹号及其解决办法
  • 免税证明怎么开?(国税局已回复)
  • 小规模纳税人购买车辆如何入账
  • 电子税务局做什么的
  • 税控发票开票系统对电脑配置有要求吗?
  • 河北工伤网上申请流程
  • 苏宁易购股份转增股本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设