我无法通过cmake和swig for python3为我的C库构建Python包装模块。对于python2.x来说一切都很好,但是看起来cmake找不到python3。我环顾四周,尝试了几件事。
例如,当我阅读cmake时,我的python
可执行文件链接到python3将首先找到这个版本。
请参见以下的swig部分:
FIND_PACKAGE(SWIG REQUIRED)
INCLUDE(${SWIG_USE_FILE})
FIND_PACKAGE(PythonInterp 3)
FIND_PACKAGE(PythonLibs 3)
FIND_PATH(PYTHON_INCLUDE_PATH Python.h
/usr/include
/usr/local/include)
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(kissCT3.i PROPERTIES CPLUSPLUS ON)
#SET_SOURCE_FILES_PROPERTIES(kissCT3.i PROPERTIES SWIG_FLAGS "-includeall -py3")
SWIG_ADD_MODULE(kissCT3 python kissCT3.i)
SWIG_LINK_LIBRARIES(kissCT3 libct2d matio kissfft ${PYTHON_LIBRARIES})
不幸的是,调用cmake后的输出显示仅找到python2.7:
-- Found SWIG: /usr/bin/swig2.0 (found version "2.0.4")
-- Found PythonInterp: /usr/bin/python2.7 (Required is at least version "3")
-- Found PythonLibs: /usr/lib/libpython2.7.so (Required is at least version "3")
-- Configuring done
-- Generating done
最佳答案
你能确定你的构建目录是干净的吗?我也有同样的问题,在清理了目录之后,它起了作用。