Ich bin nicht in der Lage, einen Python-Wrapper-Modul für meine C-Bibliothek über CMake und Swig für Python3 zu bauen. Alles funktioniert gut für Python2.x, aber es sieht so aus, als ob CMake Python3 nicht finden kann. Ich habe mich schon umgesehen und ein paar Sachen ausprobiert.Unterstützt CMake Python3?
Zum Beispiel, meine python
ausführbare Links zu Python3, wie ich lesen CMake wird diese Version zuerst finden.
Sehen Sie hier die SWIG Teil des 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})
Leider nachdem der Ausgang Cmake Aufruf zeigt, dass nur python2.7 gefunden:
-- 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
Ich wollte vorschlagen, dass Sie Ihre eigene Version des Finders Modul für Python machen, die python3 und umsetzen, die in den gleichen unterstützt Ordner als Ihre CMakelists.txt aber es scheint, dass cmake-2.8.11.X direkte Unterstützung für python3 hat. Hast du eine alte Version von cmake? – drescherjm
Ich benutze cmake Version 2.8.5. Also, das könnte das Problem sein, ich werde mich darum kümmern, danke! – mijc