环境:centos7.5
ceph版本:12.2.1

在当前环境对ceph源码rpm包进行重新编译
执行命令rpmbuild --rebuild ceph-12.2.1-0.el7.src.rpm
最后出现错误如下:
Could not find cython3. Please install Cython.

  • 查看此时对Cython3模块的编译规则
    vim /BUILD/ceph-12.2.1/cmake/modules/FindCython.cmake

    SET(Cython${PYTHON_VERSION}_FOUND FALSE)
    # Try to run Cython, to make sure it works:
    execute_process(COMMAND ${PYTHON${PYTHON_VERSION}_EXECUTABLE} -m cython --version #为此时执行的命令RESULT_VARIABLE CYTHON_RESULTOUTPUT_QUIETERROR_QUIET)
    if (CYTHON_RESULT EQUAL 0)SET(Cython${PYTHON_VERSION}_FOUND TRUE)
    endif (CYTHON_RESULT EQUAL 0)IF (Cython${PYTHON_VERSION}_FOUND)IF (NOT Cython_FIND_QUIETLY)MESSAGE(STATUS "Found cython${PYTHON_VERSION}")ENDIF (NOT Cython_FIND_QUIETLY)
    ELSE (Cython${PYTHON_VERSION}_FOUND)IF (Cython_FIND_REQUIRED)MESSAGE(FATAL_ERROR "Could not find cython${PYTHON_VERSION}. Please install Cython.")#命令执行失败,没有找到cython模块的打印#增加如下一行,来进行执行命令的打印MESSAGE(FATAL_ERROR ${PYTHON${PYTHON_VERSION}_EXECUTABLE} -m cython --version )ENDIF (Cython_FIND_REQUIRED)
    ENDIF (Cython${PYTHON_VERSION}_FOUND)
    
  • 通过以上过程确认到在编译过程中执行如下命令报出错误:
    /usr/bin/python3 -m cython --version
    则单独执行该命令报出如下错误

    cython module not found问题的解决
    
  • 此时问题非常明显,我们环境中的python3版本cython模块缺失
    再次确认该问题,执行如下命令

    [node1@localhost build]$ which python3 #查看python3的绝对路径
    /usr/bin/python3
    [node1@localhost build]$ /usr/bin/python3 --version #查看当前python3的版本
    Python 3.6.8
    [node1@localhost build]$ cd /usr/lib/python3.6/site_packages/ #进入到python3.6.8版本的lib库目录
    #发现该目录为空
    
  • 此时问题已经确认,python3.6.8版本未完全安装,尝试解决cython module的问题
    在cython官网下载最新的Cython-0.29.10.tar.gz代码,执行如下步骤进行安装

    cd Cython0.29.10#这里一定要加python对应的版本,我们是python3获取不到cython模块,所以要安装对应的python3版本的cython
    /usr/bin/python3 setup.py install
    
  • 安装好python3的cython模块,但是因为python3.6.8很多动态库都没有装上,后续仍然会有很多python3的库问题
    这里建议重新安装python3.6.8版本,进入python官网,下载python3.6.8源码的tar包
    执行如下步骤进行源码的编译安装

    #解压压缩包
    tar xzvf Python-3.6.8.tgz
    cd Python-3.6.8
    # 编译安装
    #./configure --help查看编译参数
    #默认安装在'/usr/local/bin','/usr/local/lib' etc
    #可以通过参数指定如:--prefix=/usr/local/python3
    #这里我将我python3.6.8的安装路径放在/usr目录下,它会自己将可执行文件放到/usr/bin目录下,动态库已经模块放到/usr/lib目录下
    ./configure --prefix=/usr/
    make && make install
    
  • 安装成功之后再次确认/usr/lib/python3.6/site_packages/目录库是否足够,如果此时再次出现cython缺失,那么按照我们进行cython源码安装的步骤再次使用python3进行依次安装即可

此时问题我们再次执行rpmbuild --rebuild ceph-12.2.1-0.el7.src.rpm可以成功执行下去。综上,我们的问题仍然是操作系统对应的python3未安装完全导致,如果设备联通外网,可以重新yum update python3或者yum upgrade python3即可

编译ceph源码:cython module not found问题的解决相关推荐

  1. Ceph源码编译和调试vstart版本(一)

    ceph调试环境及版本 ubuntu18.04 ceph v14.2.22 ceph调试源码部署一个完整集群,使用ceph源码vstart脚本部署. 1.克隆源码仓库 git clone --recu ...

  2. Ceph源码编译和调试之vstart方式

    存储系统:ceph-14.2.22 操作系统:ubuntu-server-18.04 前言 调试ceph源码需要提前部署好一个完整的集群,部署集群的方法很多,比如:通过ceph源码自带的vstart脚 ...

  3. 关于ceph源码 backtrace 打印函数调用栈

    当集中精力看一个问题的时候,时间久了就会有这样一个状态,天空飘来五个字,那都不算事 ceph源码庞大的体量以及复杂的设计让很多人望而却步,尤其是大量的纯虚函数更是让读者迷失在代码的海洋,这个时候函数调 ...

  4. 【Android 高性能音频】Oboe 开发流程 ( 导入 Oboe 库 | 使用预构建的二进制库和头文件 | 编译 Oboe 源码 )

    文章目录 一.导入 Oboe 库 二.使用预构建的二进制库和头文件 三.编译 Oboe 源代码 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getting Starte ...

  5. 大数据之-Hadoop源码编译_源码编译的意义---大数据之hadoop工作笔记0044

    然后我们再来看一下hadoop的源码编译, 先看看,可以去官网去下载,hadoop-2.7.2.tar.gz的源码去 下载了以后我们需要去编译,源码,为什么? 比如:上面这个源码是32位的,那么如果我 ...

  6. Win10+VS2019编译Jpeg源码时缺少win32.mak文件的内容

    在Win10中,使用VS2019的nmake编译Jpeg源码时,缺少win32.mak文件. win32.mak文件的内容如下: # Win32.Mak - Win32 application mas ...

  7. windows10下使用minGW64 编译krita源码报错

    系列文章目录 文章目录 系列文章目录 前言 一.错误原因 二.使用步骤 1.引入库 前言 collect2.exe: error: ld returned 1 exit status mingw32- ...

  8. 我在windows10下,使用CMake gui 编译krita源码,CMake gui报错:LibMyPaint_DIR-NOTFOUND

    系列文章目录 文章目录 系列文章目录 前言 一.原因 二.解决 1.引入库 前言 我在windows10下,使用CMake gui 编译krita源码 where is the source code ...

  9. 中标麒麟编译qgis源码+PyQt环境

    中标麒麟编译qgis源码 根据公司工作安排需要在中标麒麟下编译qgis3.4.7,把编译的过程随手记录一下. QGIS项目主页:http://www.qgis.org/en/site/ QGIS源码下 ...

最新文章

  1. pve rust 能拆家吗_RUST:2020年9月第四周:向上向上再向上!
  2. Hibernate 所有缓存机制详解
  3. 实现用户协议显示_HTTP协议工作原理及其特点
  4. 安装python3.7和PyCharm专业版
  5. 收集一些深度学习视频
  6. Python编程基础:第十节 while循环While Loops
  7. php语言 电商网站,电商网站如何做多语言架构
  8. C++实现归并排序(附完整源码)
  9. annotation - SuppressWarning
  10. ThinkPHP框架配置自定义的模板变量(十)
  11. 库存管理与订单的控制
  12. Winform打包-NSIS 检测.NetFramework版本(亲测可用)
  13. Android NDK开发如何解决logcat日志打印不全
  14. 2019国内高端智能云呼叫中心系统,让简单的工作变得更有值得
  15. 如何反编译dll文件
  16. linux集群渲染动画,集群渲染
  17. Xcode:iOS崩溃日志分析方法
  18. 201709-2公共钥匙盒
  19. 移动的项目,在tunnel为888696的情况下创建业务
  20. 火狐 浏览器 历史版本下载地址

热门文章

  1. lists,tuples and sets of Python
  2. 标头“Vary:Accept-Encoding”指定方法及其重要性分析
  3. 数据挖掘的一些经典算法
  4. ae编程语言as_AE开发 入门教程
  5. vc 只有顶级窗口可以弹出窗口_如果你刚换了新电脑,这几个地方记得设置一下,电脑可以多用几年...
  6. python制作图形化界面_python图形化界面设计(wxpython)一布局管理
  7. inno setup插件可选安装代码_代码检测工具(sonar docker方式安装)
  8. c 找文件服务器文件,Linux C/C++项目:虚拟文件服务器(功能匹配百度网盘)
  9. java rest httpclient_java http请求建议使用webClient,少用RestTemplate,不用HttpClient
  10. Linux阶段复习题