我安装了2个版本的python,但是cmake使用的是旧版本.如何强制cmake使用新版本?

San*_*eev 49 python cmake python-2.7

我安装了2个版本的python,但是cmake使用的是旧版本.如何强制cmake使用新版本?

jad*_*ord 36

您可以尝试以下任何一种,具体取决于您的需求:

find_package( PythonInterp 2.7 REQUIRED )
find_package( PythonLibs 2.7 REQUIRED )
Run Code Online (Sandbox Code Playgroud)

请参阅:CMake文档


jpa*_*ugh 27

我遇到了类似的问题,并用保罗的答案作为暗示解决了这个问题.我需要用来python2.7编译一个较旧的库,但cmake不断拿起我的python3.2库(和可执行文件).

首先,我cmake使用默认选项运行,然后编辑CMakeCache.txt它生成的文件.我这样做主要是因为我不知道正确的-D...咒语导致cmake获得python库并首先包含路径等.

在我看来CmakeCache.txt,我找到了这样的台词

和更换的每次出现python3.2python2.7.我还必须重命名PYTHON_EXECUTABLE使用python2.7,因为pythonpython3.2我的系统上的符号链接.

然后我重申cmake.因为它更喜欢它的缓存值来实际查找库,所以这应该适用于所有情况.至少,它确实在我的.

  • 这对我有用。提供 cmake 环境变量不起作用。编辑 CmakeCache 文件做了。无论如何都更容易使用 (2认同)

Pau*_*aul 26

尝试添加-DPYTHON_EXECUTABLE:FILEPATH=/path/to/python2.7 它可能是一个路径问题?

也可以指定python库的路径,使用你想要的版本:

 cmake -DPYTHON_LIBRARIES=/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib .
Run Code Online (Sandbox Code Playgroud)

  • 请注意,至少对于 Ubuntu 16.04 上的 cmake 2.8,您需要设置 -DPYTHON_LIBRARY 而不是 -DPYTHON_LIBRARIES (3认同)

小智 7

我使用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
Run Code Online (Sandbox Code Playgroud)