Подтвердить что ты не робот

У меня есть 2 версии python, но cmake использует более старую версию. Как заставить cmake использовать более новую версию?

У меня есть 2 версии python, но cmake использует более старую версию. Как заставить cmake использовать более новую версию?

4b9b3361

Ответ 1

Вы можете попробовать любой из них в зависимости от того, что вам нужно:

find_package( PythonInterp 2.7 REQUIRED )
find_package( PythonLibs 2.7 REQUIRED )

Смотрите: Документы CMake

Ответ 2

Попробуйте добавить -DPYTHON_EXECUTABLE:FILEPATH=/path/to/python2.7 Это может быть проблема пути?

Также можно указать путь к вашей библиотеке python, используйте нужную версию:

 cmake -DPYTHON_LIBRARIES=/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib .

Ответ 3

У меня была аналогичная проблема и разрешил ее с помощью Paul answer в качестве подсказки. Мне нужно было использовать python2.7 для компиляции старой библиотеки, но cmake продолжает собирать мои библиотеки python3.2 (и исполняемый файл).

Сначала я запустил cmake с настройками по умолчанию, а затем отредактировал файл CMakeCache.txt, который он сгенерировал. Я сделал это так, прежде всего потому, что я не знал правильных заклинаний -D..., чтобы вызвать cmake, чтобы получить библиотеку python и включить пути в первую очередь.

В моем CMakeCache.txt я нашел строки вроде этого

  • Путь к программе

    PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python
    
  • Путь к каталогу

    PYTHON_INCLUDE_DIR:PATH=/usr/include/python3.2
    
  • Путь к библиотеке

    PYTHON_LIBRARY:FILEPATH=/usr/lib/libpython3.2.so
    

И заменил каждое событие python3.2 на python2.7. Мне также пришлось переименовать PYTHON_EXECUTABLE для использования python2.7, так как python является символической ссылкой на python3.2 в моей системе.

Затем я повторю cmake. Поскольку он предпочитает свои кэшированные значения для фактического поиска библиотек, это должно работать во всех случаях. По крайней мере, это было у меня.

Ответ 4

Я использую anaconda (python 2.7.8), а также python 2.7.6.

Я попробовал -DPYTHON_EXECUTABLE:FILEPATH=$ANACONDA_HOME/bin, но найдена версия 1.4 (странно:).

Мое решение меняет его на PYTHON_EXECUTABLE:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TIFF=ON \
-DPYTHON_LIBRARY=$ANACONDA_HOME/lib/libpython2.7.so \
-DPYTHON_INCLUDE_DIR=$ANACONDA_HOME/include/python2.7/ \
-DPYTHON_EXECUTABLE=$ANACONDA_HOME/bin/python