CMake 中 使用python库
时间: 2024-05-05 21:21:44 浏览: 10
在 CMake 中使用 Python 库需要进行以下步骤:
1. 找到 Python 库的安装路径,可以使用以下命令:
```
python -c "import sys; print(sys.prefix)"
```
它会输出 Python 的安装路径,例如 `/usr/local/Cellar/python/3.9.5_1/Frameworks/Python.framework/Versions/3.9`。
2. 在 CMakeLists.txt 中声明 Python 库的路径:
```
set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} "/usr/local/Cellar/python/3.9.5_1/Frameworks/Python.framework/Versions/3.9/include/python3.9/")
set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "/usr/local/Cellar/python/3.9.5_1/Frameworks/Python.framework/Versions/3.9/lib/libpython3.9.dylib")
```
这里的 `PYTHON_INCLUDE_DIRS` 和 `PYTHON_LIBRARIES` 分别是 Python 库的头文件和库文件路径。
3. 在 CMakeLists.txt 中添加链接库:
```
target_link_libraries(your_target ${PYTHON_LIBRARIES})
```
这里的 `your_target` 是你的目标可执行文件或库。
4. 在代码中使用 Python 库:
```
#include <Python.h>
Py_Initialize();
PyObject* pModule = PyImport_ImportModule("your_python_module");
PyObject* pFunc = PyObject_GetAttrString(pModule, "your_python_function");
PyObject* pArgs = PyTuple_New(1);
PyTuple_SetItem(pArgs, 0, PyLong_FromLong(42));
PyObject* pResult = PyObject_CallObject(pFunc, pArgs);
long result = PyLong_AsLong(pResult);
Py_Finalize();
```
这里的 `your_python_module` 和 `your_python_function` 分别是你的 Python 模块和函数名。你需要根据实际情况修改代码。