У меня есть 2 версии python, но cmake использует более старую версию. Как заставить cmake использовать более новую версию?
У меня есть 2 версии python, но cmake использует более старую версию. Как заставить cmake использовать более новую версию?
Ответ 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