環境:centos7.5
ceph版本:12.2.1
- 檢視此時對
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_RESULT
OUTPUT_QUIET
ERROR_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