CMake是否支持Python3? [英] Does CMake support Python3?

查看:2596
本文介绍了CMake是否支持Python3?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法通过CMake和Swig for Python3为我的C库构建一个Python包装器模块。一切工作正常为Python2.x,但它看起来像CMake找不到Python3。我已经环顾四周,尝试了几件事情。



例如,我的 python 可执行文件链接到Python3,因为我读CMake会先找到这个版本。 p>

请参阅 CMakeLists.txt 的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})


<$ p>

$ p> - 找到SWIG:/usr/bin/swig2.0(发现版本2.0.4)
- 找到的PythonInterp:/usr/bin/python2.7是至少版本3)
- 发现PythonLibs:/usr/lib/libpython2.7.so(必须至少是版本3)
- 配置完成
- - 生成完成


解决方案

清洁?我有完全相同的问题,后清洗工作dir它工作。


I am not able to build a Python wrapper module for my C library via CMake and Swig for Python3. Everything works fine for Python2.x but it looks like CMake cannot find Python3. I already looked around and tried a couple of things.

For example, my python executable links to Python3, as I read CMake will find this version first.

Please see here the SWIG part of the CMakeLists.txt:

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})

Unfortunately, the output after calling cmake shows that only python2.7 is found:

-- 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

解决方案

Can you make sure your build directory is clean? I had the exact same issue and after cleaning the dir it worked.

这篇关于CMake是否支持Python3?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆