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

  • 手机最多10分钟锁定怎么修改(手机最多10分钟耗电多少)

    手机最多10分钟锁定怎么修改(手机最多10分钟耗电多少)

  • 微信如何回车换行(微信怎么把回车键改成换行)

    微信如何回车换行(微信怎么把回车键改成换行)

  • 快手里面的背包在哪里(快手里面的背包怎么打开)

    快手里面的背包在哪里(快手里面的背包怎么打开)

  • ipsec协议处于那一层(ipsec协议工作在哪一层)

    ipsec协议处于那一层(ipsec协议工作在哪一层)

  • QQ怎么查身份证号(qq怎么查看身份证照片)

    QQ怎么查身份证号(qq怎么查看身份证照片)

  • 微信文章如何转载合法(微信文章如何转到美篇)

    微信文章如何转载合法(微信文章如何转到美篇)

  • 荣耀v30刷新率多少(华为荣耀v30屏幕刷新率)

    荣耀v30刷新率多少(华为荣耀v30屏幕刷新率)

  • 一加8屏幕分辨率(一加8屏幕分辨率是多少)

    一加8屏幕分辨率(一加8屏幕分辨率是多少)

  • 为什么电脑上的word格式会与手机上不同(为什么电脑上的软件消失了)

    为什么电脑上的word格式会与手机上不同(为什么电脑上的软件消失了)

  • 手机号注销多久是空号(手机号注销多久查不到通话记录)

    手机号注销多久是空号(手机号注销多久查不到通话记录)

  • 鲁大师的驱动要不要更新(鲁大师的驱动要下载吗)

    鲁大师的驱动要不要更新(鲁大师的驱动要下载吗)

  • 抖音加入工会可以自己退出吗(抖音加入工会可以用另一个抖音直播吗)

    抖音加入工会可以自己退出吗(抖音加入工会可以用另一个抖音直播吗)

  • 手机烫手如何解决(手机烫手怎么办?)

    手机烫手如何解决(手机烫手怎么办?)

  • 虾米音乐怎么绑定淘宝账号(虾米音乐怎么解除绑定手机号)

    虾米音乐怎么绑定淘宝账号(虾米音乐怎么解除绑定手机号)

  • 华硕笔记本怎么重装系统(华硕笔记本怎么强制关机)

    华硕笔记本怎么重装系统(华硕笔记本怎么强制关机)

  • enscape怎样才能没水印(enscape操作步骤)

    enscape怎样才能没水印(enscape操作步骤)

  • 充电宝usb接口坏了还能修吗(充电宝的usb口失灵怎么办)

    充电宝usb接口坏了还能修吗(充电宝的usb口失灵怎么办)

  • 群聊里怎样关闭朋友圈(怎样关闭群聊而不删除?)

    群聊里怎样关闭朋友圈(怎样关闭群聊而不删除?)

  • xs屏幕录制在哪里(xs屏幕录像在哪)

    xs屏幕录制在哪里(xs屏幕录像在哪)

  • qq扩列功能怎么开(qq扩列功能怎么找不到了2023)

    qq扩列功能怎么开(qq扩列功能怎么找不到了2023)

  • 港版xr支持电信吗(港版xr支持电信卡吗)

    港版xr支持电信吗(港版xr支持电信卡吗)

  • 苏宁如何退货(苏宁买的东西怎么退)

    苏宁如何退货(苏宁买的东西怎么退)

  • 如何确定我的Mac或Linux是否易受到Shellshock攻击?(如何确定我的世界的区块)

    如何确定我的Mac或Linux是否易受到Shellshock攻击?(如何确定我的世界的区块)

  • 楚格峰山顶的缆车站,德国格赖瑙市 (© Robert Jank/Alamy)(德国楚格峰一日游攻略)

    楚格峰山顶的缆车站,德国格赖瑙市 (© Robert Jank/Alamy)(德国楚格峰一日游攻略)

  • 后期装修改造费用计入什么科目
  • 转账支票的签发
  • 企业残保金什么情况下可以减免
  • 纳税申报表上的二维码有什么用?
  • 关联方交易的会计处理方法
  • 什么时候确认应收股利
  • 工会经费的减除项是什么
  • 预付的房租计入什么费用
  • 租入厂房改建折旧年限
  • 留底税款
  • 流动比率计算公式速动比率
  • 计提工资和应付职工薪酬怎么不一样
  • 软件入库会计分录
  • 如何看发票是否被抵扣
  • 开出销项负数发票怎么做账
  • 购车保险属于什么费用
  • 试生产期间的账务处理
  • 认证过的发票
  • 红字专用发票信息表编号在哪儿
  • 应收预收账款属于什么科目
  • 新入职员工如何加入企业微信
  • 个人免征增值税起征点
  • 产值和营业收入差距大
  • php preg_quote
  • 什么是应交税费科目
  • 如何在windows中添加输入法
  • uefiu盘安装系统步骤win10
  • 怎么添加动态磁贴
  • 材料成本差异属于成本类账户吗
  • 男人喜欢什么样的女人最容易动心
  • 企业以非货币性资产投资
  • 以分期收款方式销售货物的按照什么日期确认收入的实现
  • 软件和集成电路杂志官网
  • 逆回购利息计算公式
  • php 图片水印
  • 营改增增值税会计处理
  • 企业所得税减免20%按5%征收
  • php输出语法
  • 原生js获取document
  • this.$router.push点了后hash地址改变了,页面却不跳转
  • python 微信红包
  • 资产减值损失和资产减值准备
  • 季末资产总额怎么计算出来的
  • python的socket
  • python中如何删除文件
  • mongo创建db
  • 项目终止前期费用核销
  • 有下列情形之一的,当事人可以解除
  • 下列行为免征增值税的有
  • 待处理流动资产损失属于什么科目
  • 企业资金管理是什么意思
  • 公司清理固定资产怎样交税
  • 机票报销属于什么科目
  • 企业购进生产用品税率
  • 奖金做预发年底会发吗
  • 卖固定资产如何做账
  • 在建工程发生的运费计入什么科目
  • 购置办公大楼,会计处理
  • 私营企业固定资产法律制度
  • 财务费用科目期末结转损益后应
  • ubuntu dde
  • ubuntu装完后重启找不到操作系统
  • linux 图形
  • win7用户在哪
  • linux挂起
  • win1020h2正式版
  • windows7的电脑
  • windows7开机显示错误恢复进不去
  • 全球知名的中文搜索引擎
  • 批处理 >nul
  • tomcat怎么启动
  • perl chr
  • unity触摸屏控件
  • node.js调用c
  • ANDROID手机客户端软件开发工程师
  • unity3d官方教程
  • python字典常用操作
  • django框架详解
  • 青岛税务局网上办税厅app
  • 怎么批量打开excel文件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设