首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我安装了两个版本的python,但cmake使用的是旧版本。如何强制cmake使用更新版本?

我安装了两个版本的python,但cmake使用的是旧版本。如何强制cmake使用更新版本?
EN

Stack Overflow用户
提问于 2013-03-08 10:12:27
回答 5查看 92.6K关注 0票数 76

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

EN

回答 5

Stack Overflow用户

发布于 2016-01-03 20:01:02

您可以根据需要尝试这两种方法中的一种:

对于CMake >= 3.12

根据变化量g:

新的"FindPython3“和"FindPython2”模块,以及新的 "FindPython“模块已被添加,以提供一种新的定位方法。 python环境。

代码语言:javascript
运行
复制
find_package(Python COMPONENTS Interpreter Development)

文档

这个模块看起来最好是Python的第3版。如果找不到,则搜索版本2。要管理Python的并发版本3和2,请使用FindPython3和FindPython2模块而不是这个模块。

对于CMake < 3.12

文档

代码语言:javascript
运行
复制
find_package(PythonInterp 2.7 REQUIRED)
find_package(PythonLibs 2.7 REQUIRED)
票数 51
EN

Stack Overflow用户

发布于 2013-03-08 10:20:01

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

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

代码语言:javascript
运行
复制
 cmake -DPYTHON_LIBRARIES=/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib .
票数 42
EN

Stack Overflow用户

发布于 2013-04-16 19:55:52

我也遇到了类似的问题,并使用保罗的回答作为提示解决了问题。我需要使用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。由于它更喜欢缓存的值,而不是实际查找库,所以在所有情况下都应该这样做。至少在我身上是这样的。

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15291500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档