Как указать версию Python для построения модуля Pybind11C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как указать версию Python для построения модуля Pybind11

Сообщение Anonymous »

Я установил свой Pybind11 для создания модулей Python, написанных в C ++.
У меня есть Python3.6, и Python3.7, установленные в моей системе Ubuntu, я установил как Python3.6-dev и python3.7-dev . Затем я настраиваю свой файл cmakelists.txt для моего проекта следующим образом:

Код: Выделить всё

set(PYTHONVERSION "3.7")
# None of the lines below works
add_definitions(-DPYBIND11_PYTHON_VERSION="${PYTHONVERSION}")
set(PYBIND11_PYTHON_VERSION ${PYTHONVERSION} CACHE STRING "")
set(PYBIND11_PYTHON_VERSION ${PYTHONVERSION})
find_package(Python ${PYTHONVERSION} COMPONENTS Development Interpreter)

set(TARGET proj)
pybind11_add_module(${TARGET} MODULE proj.cpp)
target_include_directories(${TARGET} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
if (Python_FOUND)
target_include_directories(${TARGET} PUBLIC ${Python_INCLUDE_DIRS})
endif()

Однако, когда я создаю проект, он все еще генерирует модули для Python3.6 вместо Python3.7 . Ниже приведен мой выход из Cmake, я обнаружил, что Cmake находит Python3.6 сначала, где я даже не называл Findpython .

Код: Выделить всё

[cmake] Not searching for unused variables given on the command line.
[cmake] -- The C compiler identification is GNU 9.3.0
[cmake] -- The CXX compiler identification is GNU 9.3.0
[cmake] -- Detecting C compiler ABI info
[cmake] -- Detecting C compiler ABI info - done
[cmake] -- Check for working C compiler: /usr/bin/gcc-9 - skipped
[cmake] -- Detecting C compile features
[cmake] -- Detecting C compile features - done
[cmake] -- Detecting CXX compiler ABI info
[cmake] -- Detecting CXX compiler ABI info - done
[cmake] -- Check for working CXX compiler: /usr/bin/g++-9 - skipped
[cmake] -- Detecting CXX compile features
[cmake] -- Detecting CXX compile features - done
[cmake] -- Conan: Adjusting output directories
[cmake] -- Conan: Using cmake global configuration
[cmake] -- Conan: Adjusting default RPATHs Conan policies
[cmake] -- Conan: Adjusting language standard
[cmake] -- Current conanbuildinfo.cmake directory: /home/mpnv38/develop/parcel_dim_pywrapper/build
[cmake] -- Conan: Compiler GCC>=5, checking major version 9
[cmake] -- Conan: Checking correct version: 9
[cmake] -- Found PythonInterp: /usr/bin/python (found version "3.6.9")
[cmake] -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.6m.so
[cmake] -- Performing Test HAS_CPP14_FLAG
[cmake] -- Performing Test HAS_CPP14_FLAG - Success
[cmake] -- Found Python: /usr/bin/python3.7 (found suitable version "3.7.5", minimum required is "3.7") found components: Development Interpreter Development.Module Development.Embed
[cmake] -- Configuring done
[cmake] -- Generating done
Я что -то пропустил?

Подробнее здесь: https://stackoverflow.com/questions/640 ... d11-module
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»