小编mar*_*old的帖子

cmake发现了错误的python库

我是CMake的新手,无法理解一些使用概念.

我正在从c ++程序调用python脚本:

#include <Python.h>
...
Py_Initialize();
PyRun_SimpleFile(...);
Py_Finalize();
Run Code Online (Sandbox Code Playgroud)

我的cmake文件中相应的cmake条目是:

FIND_PACKAGE(PythonLibs REQUIRED)
...
TARGET_LINK_LIBRARIES(MyApplication ${PYTHON_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)

只要我的python脚本没有使用安装在site-packages目录中的任何模块,这就可以工作,否则我会得到一个ImportError.这个问题展示了如何使用CMake查找site-packages目录的位置,但是我应该告诉CMake如何处理呢?

编辑:问题解决了.事实证明,FIND_PACKAGE(PythonLibs)从我通常使用的内容中找到了不同的python安装(/usr/local/lib/libpython2.7.dylib而不是/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2. 7.dylib - 我在Mac上),这是我如何获得标准的python模块,但没有我自己安装.为了将PYTHONPATH改回正常,我补充道

try:
  import some_package
except ImportError:
  if "my_python_path" in sys.path: raise
  sys.path.append("my_python_path")
Run Code Online (Sandbox Code Playgroud)

在我的python脚本的顶部.

python macos cmake

17
推荐指数
2
解决办法
2万
查看次数

标签 统计

cmake ×1

macos ×1

python ×1