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

  • 不干扰不过载,你的APP消息推送也能打动用户!(互不干扰)

    不干扰不过载,你的APP消息推送也能打动用户!(互不干扰)

  • 苹果手表se充电器是什么接口(苹果手表se充电头多少瓦)

    苹果手表se充电器是什么接口(苹果手表se充电头多少瓦)

  • 迅雷快鸟和迅雷有什么区别(迅雷快鸟有用吗)

    迅雷快鸟和迅雷有什么区别(迅雷快鸟有用吗)

  • 淘宝暗黑模式如何打开(淘宝有暗黑模式)

    淘宝暗黑模式如何打开(淘宝有暗黑模式)

  • 笔记本电脑开机键坏了怎么开机关机(笔记本电脑开机黑屏只有鼠标箭头)

    笔记本电脑开机键坏了怎么开机关机(笔记本电脑开机黑屏只有鼠标箭头)

  • 华为手机怎么把快手音乐设置成自己的铃声(华为手机怎么把下面三个键调出来)

    华为手机怎么把快手音乐设置成自己的铃声(华为手机怎么把下面三个键调出来)

  • 微信登录设备管理准吗(微信登录设备管理显示登录过)

    微信登录设备管理准吗(微信登录设备管理显示登录过)

  • 微信视频直播能支持多少人同时看(微信视频直播能连麦吗)

    微信视频直播能支持多少人同时看(微信视频直播能连麦吗)

  • b站超大弹幕怎么发(b站超大弹幕怎么设置)

    b站超大弹幕怎么发(b站超大弹幕怎么设置)

  • ipad己停用是什么意思(2020版ipad已停用)

    ipad己停用是什么意思(2020版ipad已停用)

  • 电脑360加速球老是90多怎么解决(电脑360加速球老是80多怎么解决)

    电脑360加速球老是90多怎么解决(电脑360加速球老是80多怎么解决)

  • oppo应用时间怎么关闭(oppo的应用时间在哪里)

    oppo应用时间怎么关闭(oppo的应用时间在哪里)

  • surface充不进去电(surface充不进去电什么原因)

    surface充不进去电(surface充不进去电什么原因)

  • miui10能解决4g断流问题吗(小米10双4g断流)

    miui10能解决4g断流问题吗(小米10双4g断流)

  • 爱奇艺会员到期了下载的还能看吗(爱奇艺会员到期是24点吗)

    爱奇艺会员到期了下载的还能看吗(爱奇艺会员到期是24点吗)

  • 双千兆路由器是什么意思(双千兆路由器是两千兆吗)

    双千兆路由器是什么意思(双千兆路由器是两千兆吗)

  • 淘宝店铺会员怎么会员领取(淘宝店铺会员怎么批量取消)

    淘宝店铺会员怎么会员领取(淘宝店铺会员怎么批量取消)

  • 小米9pro怎么设置性能优先(小米9prolhdc怎么设置)

    小米9pro怎么设置性能优先(小米9prolhdc怎么设置)

  • 苹果防偷看屏如何设置(苹果手机屏幕防止偷看)

    苹果防偷看屏如何设置(苹果手机屏幕防止偷看)

  • whatspp安装日期不对(whatsapp下载安装日期错误怎么解决)

    whatspp安装日期不对(whatsapp下载安装日期错误怎么解决)

  • shotonmi8是什么手机(shotonmi8手机的样子)

    shotonmi8是什么手机(shotonmi8手机的样子)

  • 一加手机6T尺寸是多少(一加手机6t尺寸多大)

    一加手机6T尺寸是多少(一加手机6t尺寸多大)

  • 微信电话可以录音吗(微信电话可以录音吗 华为)

    微信电话可以录音吗(微信电话可以录音吗 华为)

  • airpods2代和1代怎么分(airpods二代和1代)

    airpods2代和1代怎么分(airpods二代和1代)

  • 桔梗的功效与作用(桔梗的功效与作用吃法)

    桔梗的功效与作用(桔梗的功效与作用吃法)

  • 脑电EEG代码开源分享 【4.特征提取-时频域篇】(egi脑电数据处理)

    脑电EEG代码开源分享 【4.特征提取-时频域篇】(egi脑电数据处理)

  • 只有增值税专用发票才能抵扣进项吗
  • 原材料的采购成本包括运费吗
  • 在外地预缴的印花税如何扣除
  • 经营所得个税计算案例
  • 累计预扣法计算公式
  • 个人所得税抵扣项目有哪些及金额
  • 金蝶利润表为什么没有收入
  • 单一窗口报关单
  • 医院工作服记什么科目
  • 免 抵 退
  • 补计提上一年度费用
  • 安置残疾人加计扣除
  • 租赁负债的计量
  • 国有资本及权益客观增减因素
  • 小企业以前年度损益调整科目编码
  • 准予抵扣的进项税范围
  • 记账凭证核算形式账务处理程序的基本特点
  • 营改增后建筑业怎么开票
  • 职工培训费进项能抵扣吗
  • 工会账户销户划拨流程
  • 财务报表层次重大错报风险增大了认定层次
  • 扣除工资作为违约金
  • 建筑企业在增值税方面新出台的政策
  • 参加展会的住宿费计入什么科目
  • 季度利润表本月数和本年累计数
  • 二千万注册资金是多少
  • 其他资金账簿和资产账簿
  • 营业外支出应填什么科目
  • 外资企业税率是多少
  • 怎么计算附加税税率
  • 如何删除系统自带的软件
  • 进程lsass.exe
  • PHP:pg_field_num()的用法_PostgreSQL函数
  • 企业确认坏账损失时的会计分录为
  • 购买材料发票未到如何做账
  • php获取手机型号
  • 财务费用为负数是好事还是坏事
  • 小规模纳税人出租不动产免征增值税
  • gpt40
  • php页面跳转可以用header
  • 关于预付账款的特点
  • 下脚料收入计入什么科目
  • 坏账准备备案申请资料
  • 季度所得税收入大于成本利润是负号
  • 帝国cms如何使用
  • 织梦cms要钱吗
  • 参展费用计入什么科目
  • 电子税务局没有税务数字账户怎么办
  • 异地工程增值税按几个点预缴
  • 哪些无票费用能够抵扣所得税
  • 罚款可以直接在12123
  • 发票含税和不含税的区别
  • 有形动产经营性租赁光租业务是什么意思
  • 申报成功后怎么更正申报
  • 购进材料,已付,材料尚未验收入库
  • 事业单位外出参观培训心得
  • 重分类调整分录是什么
  • 金蝶kis专业版怎么备份账套
  • 利润总额和未分成比例
  • 还没有开业的公司怎么样
  • 教育经费支出
  • sql group by语句
  • 腾讯tp驱动
  • linux ids
  • Win10预览版镜像
  • 深入理解linux内核第三版
  • ListView.setOnItemClickListener不起作用的原因
  • jquery手册手机版
  • 举例说明jquery的功能
  • python爬取教程
  • 安卓启动器修改
  • 详解js跨域原理是什么
  • 工会经费网上怎么申报
  • 总分机构在同一县城企业所得税需要预交吗
  • 简易计税方法开的是普票还是专票
  • 重庆国税电子税务局手机版
  • 京东开的店
  • 杭州国家税务局陈英泽
  • 怎么查询手机发票
  • 财税2016年47号文件中的劳务派遣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设