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

  • excel行间距怎么设置(excel行间距怎么统一)

    excel行间距怎么设置(excel行间距怎么统一)

  • 西安一码通如何绑定小朋友(西安一码通如何查看核酸)

    西安一码通如何绑定小朋友(西安一码通如何查看核酸)

  • 饼图怎么显示数据和百分比(饼图怎么显示数据标签)

    饼图怎么显示数据和百分比(饼图怎么显示数据标签)

  • 苹果屏幕使用时间不准(苹果屏幕使用时间准确吗)

    苹果屏幕使用时间不准(苹果屏幕使用时间准确吗)

  • Excel文档打印怎么操作(excel文档打印怎么设置横向)

    Excel文档打印怎么操作(excel文档打印怎么设置横向)

  • 小米10发热严重怎么办(小米10发热厉害)

    小米10发热严重怎么办(小米10发热厉害)

  • 华为手机背面的标签可以撕吗(华为手机背面的玻璃外壳碎了)

    华为手机背面的标签可以撕吗(华为手机背面的玻璃外壳碎了)

  • 苹果查找找不到位置是什么原因(苹果查找找不到位置怎么办)

    苹果查找找不到位置是什么原因(苹果查找找不到位置怎么办)

  • iphonexr支持快充嘛(iphonexr 支持快充吗?)

    iphonexr支持快充嘛(iphonexr 支持快充吗?)

  • 淘宝评价高是灰色的什么意思(淘宝评价高是灰色的)

    淘宝评价高是灰色的什么意思(淘宝评价高是灰色的)

  • 手机里的nfc是什么意思(手机里的nfc是什么功能)

    手机里的nfc是什么意思(手机里的nfc是什么功能)

  • 怎么退回微信红包(怎么退回微信红包封面)

    怎么退回微信红包(怎么退回微信红包封面)

  • 苹果11双摄像头怎么开(苹果11双摄像头用法)

    苹果11双摄像头怎么开(苹果11双摄像头用法)

  • qq名片封赞一般几天(qq名片封赞一般多久)

    qq名片封赞一般几天(qq名片封赞一般多久)

  • fps不稳定是什么原因(fps不稳定是什么原因 穿越火线)

    fps不稳定是什么原因(fps不稳定是什么原因 穿越火线)

  • xr强制重启怎么按(xr 强制启动)

    xr强制重启怎么按(xr 强制启动)

  • ipad用手机卡上网吗(ipad用手机卡上网慢怎么办)

    ipad用手机卡上网吗(ipad用手机卡上网慢怎么办)

  • 华为watch gt2能打电话吗(华为watch gt 2e可以打电话吗)

    华为watch gt2能打电话吗(华为watch gt 2e可以打电话吗)

  • 华为手机怎么插耳机(华为手机怎么插卡)

    华为手机怎么插耳机(华为手机怎么插卡)

  • 电脑wps文字怎么发送(电脑wps怎么设置文字大小)

    电脑wps文字怎么发送(电脑wps怎么设置文字大小)

  • 淘宝预付定金是什么意思(淘宝预付定金是订金吗)

    淘宝预付定金是什么意思(淘宝预付定金是订金吗)

  • 索尼xz1气密性多少正常(索尼xz气密性检查方法)

    索尼xz1气密性多少正常(索尼xz气密性检查方法)

  • 小米6连不上wifi(小米6连不上wifi怎么办)

    小米6连不上wifi(小米6连不上wifi怎么办)

  • 抖音如何退工会(抖音退工会教程)

    抖音如何退工会(抖音退工会教程)

  • qq输入法如何退出(qq输入法进程怎么关)

    qq输入法如何退出(qq输入法进程怎么关)

  • 自己房子出租发布信息
  • 企业转出多交增值税吗
  • 已申报税额是什么意思可以退吗
  • 幼儿园账务处理及报税
  • 商务费用报销一般有哪些流程
  • 个体户定额征收标准
  • 出口资质需要哪些资质
  • 公益募捐什么意思
  • 用友t3普及版价格
  • 小规模纳税人免征增值税政策
  • 社保费公司部分怎么算
  • 房地产开发企业会计科目
  • 退休工资的个人账户怎么算
  • 计提的工会经费怎么做账
  • 固定资产变动时应如何处理
  • 加油费充值卡发票可以报销吗
  • 进口增值税的账务处理
  • 简易征收是什么意思和一般纳税人
  • 长期股权投资溢价购入
  • 公司有残疾人员怎么办
  • Win11截图工具怎么设置快捷键
  • 503错误的原因和解决方法
  • PHP:session_register_shutdown()的用法_Session函数
  • PHP:pg_lo_truncate()的用法_PostgreSQL函数
  • 劳动合同到期补偿金怎么算
  • 增值税纳税申报首先要稽核比对
  • 费用发生了 没有发票该如何记账
  • 记账凭证和会计分录的区别
  • wordpress使用
  • PHP:imagefontwidth()的用法_GD库图像处理函数
  • 会计学中借和贷怎么区分
  • 即征即退进项税转出
  • vue3+ts+vite
  • react.fc
  • metric命令
  • 增值税小规模纳税人适用3%征收率
  • php二次开发哪个cms
  • mysql安装总结
  • linux mysql忘记密码的多种解决或Access denied for user 'root'@'localhost'
  • 维修费开专票怎么做账
  • mysql显示数据库中的表
  • mysql5.5数据库安装教程
  • 残疾人保障金需要联系专管员吗
  • 信用证保证金有利息吗
  • mysql改造
  • 贷款用途不符合规定有啥危害
  • 应收账款资金占用费怎么算
  • 兼职会计的工资需要开发票吗
  • 保修期间免费提车可以吗
  • 流动比率计算公式是年初还是年末
  • 股权转让怎么入账
  • 销售材料购买方会计分录
  • 购买扶贫产品属于什么费用
  • 自创商誉是否需要纳税
  • 资本成本率是指企业用资费用与有效筹资额之间的比率
  • 国税退回多缴税款
  • 收到保险公司的赔款计入什么科目
  • 多个客户账款明细
  • VMware虚拟机中卸载java命令
  • win8开始在哪里
  • 电脑卡 硬盘100%
  • win7如何设置鼠标
  • pqv2isvc.exe - pqv2isvc是什么进程 有什么作用
  • kcleaner是什么文件夹
  • win10系统开机重装教程
  • javaweb技术栈是什么
  • 学习计划
  • js判断输入用户名是否正确
  • Android 获取网络时间
  • JavaScript中的对象一般分为
  • js最简单的代码
  • 防止shell脚本重复执行
  • python中模块的作用
  • javascript语言基础
  • 安卓实现代理
  • bpc什么时候进入中国
  • 电脑多窗口同步操作
  • 发票扫码抽奖用什么软件
  • 48岁了还有必要上环吗
  • 争议问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设