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

  • 台式机怎么用单孔耳麦(台式电脑单主机什么意思)

    台式机怎么用单孔耳麦(台式电脑单主机什么意思)

  • huawei share用途(手机中huawei share什么作用?)

    huawei share用途(手机中huawei share什么作用?)

  • 淘宝投诉以后问题没有得到解决怎么办(淘宝投诉后会怎么处理方法)

    淘宝投诉以后问题没有得到解决怎么办(淘宝投诉后会怎么处理方法)

  • 当窗体中的内容太多无法放在一面中显示时(当窗体中的内容太多)

    当窗体中的内容太多无法放在一面中显示时(当窗体中的内容太多)

  • 华为备份的照片在哪里(华为备份的照片怎么查看)

    华为备份的照片在哪里(华为备份的照片怎么查看)

  • 华为手机新机怎么充电(华为手机新机怎么激活)

    华为手机新机怎么充电(华为手机新机怎么激活)

  • 微信限制登录是什么原因(微信限制登录是为什么)

    微信限制登录是什么原因(微信限制登录是为什么)

  • 电脑打印按哪两个键(电脑打印用哪两个键)

    电脑打印按哪两个键(电脑打印用哪两个键)

  • 苹果x声音怎么调到最大(苹果X声音怎么调)

    苹果x声音怎么调到最大(苹果X声音怎么调)

  • nova4耳机孔旁边是什么(华为nova4手机耳机旁边黑色的点是)

    nova4耳机孔旁边是什么(华为nova4手机耳机旁边黑色的点是)

  • 为什么添加微信直接就通过了(为什么添加微信号显示用户不存在)

    为什么添加微信直接就通过了(为什么添加微信号显示用户不存在)

  • 移除粉丝还能再关注吗(移除粉丝后对方列表还有我吗)

    移除粉丝还能再关注吗(移除粉丝后对方列表还有我吗)

  • 怎么把字体变成竖的(怎么把字体变成白色)

    怎么把字体变成竖的(怎么把字体变成白色)

  • 华为怎么禁用分屏功能(华为怎么禁用分屏模式)

    华为怎么禁用分屏功能(华为怎么禁用分屏模式)

  • ios12如何隐藏单个app(苹果手机ios12怎么隐藏单个软件)

    ios12如何隐藏单个app(苹果手机ios12怎么隐藏单个软件)

  • 荣耀v20关闭后台不显示(荣耀v20怎么关闭)

    荣耀v20关闭后台不显示(荣耀v20怎么关闭)

  • oppo怎么关掉耳机方式(oppo怎么关掉耳机自动播放)

    oppo怎么关掉耳机方式(oppo怎么关掉耳机自动播放)

  • vue怎么调照片呈现速度(vue怎么照片设置)

    vue怎么调照片呈现速度(vue怎么照片设置)

  • 荣耀10手机能开空调吗(荣耀10手机开机键坏了怎么开机)

    荣耀10手机能开空调吗(荣耀10手机开机键坏了怎么开机)

  • ppt超级链接在哪(ppt2003超级链接)

    ppt超级链接在哪(ppt2003超级链接)

  • 苹果手机x长曝光在哪里设置(苹果手机长曝光拍照怎么用)

    苹果手机x长曝光在哪里设置(苹果手机长曝光拍照怎么用)

  • 华为nova5pro原装充电器(华为nova5pro原装电池价格)

    华为nova5pro原装充电器(华为nova5pro原装电池价格)

  • 华为p30有红外吗(华为p30有红外功能吗?)

    华为p30有红外吗(华为p30有红外功能吗?)

  • mediaman.exe是什么进程 有什么用 mediaman进程查询(media是什么文件)

    mediaman.exe是什么进程 有什么用 mediaman进程查询(media是什么文件)

  • hostnamectl命令  显示与设置主机名称(hostnamectl命令可以永久修改主机名)

    hostnamectl命令 显示与设置主机名称(hostnamectl命令可以永久修改主机名)

  • 计提本月所得税费用怎么算
  • 增值税零税率是一种税收优惠政策
  • 通用机打发票内容可以随便写吗
  • 固定资产报废属于非常损失吗
  • 资产负债表里面的应收账款怎么算
  • 新会计准则 预付房租怎么做账
  • 所得税费用的确认方法
  • 人力费可以计入劳务费吗
  • 出纳做账流程视频
  • 汽车贷款利息是什么
  • 企业发放员工工资
  • 应收账款减值处理
  • 职工福利费在期间费用表中怎么填
  • 职工福利增值税的处理
  • 口腔医院的发票有什么用
  • 施工企业开专票还是开普票好
  • 小规模纳税人减免增值税会计处理
  • 应付账款周转率越高越好吗
  • 部队医院学校都没有税号吗
  • 出口退税是几个点
  • 受委托研发企业可以享受研发支出吗
  • 电梯销售和安装怎么核算收入
  • 预计毛利率
  • 小规模怎么查询
  • 王者荣耀电脑版操作
  • 监理多计量承担什么责任
  • 预收账款是
  • 工业园租金大概是多少
  • qclean.exe - qclean是什么进程 有什么用
  • 财务冲抵如何处理
  • 多付货款退回的会计分录
  • 增值税专用发票上注明的价款含税吗
  • php图片加文字水印
  • 专利代理服务费计入什么科目
  • php正则表达式匹配,返回原因
  • 应收票据确认坏账怎么处理
  • 机器学习中的预测评价指标MSE、RMSE、MAE、MAPE、SMAPE
  • centos7配置自动获取ip
  • 关于申请补发工资的申请
  • 宝塔怎么做?
  • 企业亏损企业汇算清缴怎么处理
  • 会计调整以前年度遗留问题查不出来说明怎么写
  • 供应商退回货款怎么入账
  • 公司给员工的福利语句
  • 织梦怎么安装
  • mysql @参数
  • sql优化口诀
  • sql中多条件查询
  • 地方水利建设基金减免政策2023
  • 疫情期间减免的养老保险算工龄吗
  • 母公司给子公司开票会有税务风险吗
  • 软件开发过程付什么费用
  • 计提生产产品的机器设备的折旧应借记制造费用科目
  • 滴滴打车开具的普通发票可以抵扣吗
  • 车船税怎么计账
  • 主营业务成本暂估怎么算
  • 购买商品属于什么费用
  • 私立幼儿园怎样转公立幼儿园
  • 有没有月初发放当月工资的
  • 应收票据和应收账款减少说明什么
  • 一个企业至少应纳多少税
  • 通过T-SQL语句实现数据库备份与还原的代码
  • Windows Server 2008系统10个意外惊喜
  • win8计算机管理员权限
  • w10 2021年更新
  • win10如何创建一个新的用户
  • win8怎么运行命令
  • windows8怎么设置开机启动项
  • cocos2dx 教程
  • 什么时候用热毛巾敷眼睛最好
  • 认识 认知
  • 请找到以下
  • 解析函数
  • nodejs操作mysql
  • 解决脱发的8个方法
  • jquery22
  • 电子税务局驱动安装步骤
  • 进项税销项税抵扣公式
  • 如何查看税务登记信息
  • 电信业八大争议事件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设