环境: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