日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

编译ceph源码:cython module not found问题的解决

發布時間:2023/11/27 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译ceph源码:cython module not found问题的解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境: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问题的解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。