Python: Could NOT find PythonLibs (如何查找你的python路径))

本文介绍了解决CMake在编译过程中无法找到Python库和头文件的问题。通过在终端中运行特定Python命令,可以获取Python的include和lib路径。对于Python2和Python3,分别提供了获取路径的方法,并给出了在CMake中正确设置这些路径的示例。
摘要由CSDN通过智能技术生成

查找python对应lib和inc

1. 背景

使用cmake编译文件的时候报错

CMake Error at /usr/local/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)

2. 解决方法

如果是anaconda激活对应的环境,如果不是,直接在终端中输入python或者python3 (需要决定需要查找的python版本)

如果是python 2版本, 输入以下代码

root@c10fab84fca7:/usr/Downloads/felaim# python
Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from distutils.sysconfig import get_python_inc
>>> print(get_python_inc())
/usr/include/python2.7
>>> import distutils.sysconfig as sysconfig
>>> print(sysconfig.get_config_var('LIBDIR'))
/usr/lib
>>> 

可以看到python的include文件在

/usr/include/python2.7

python的lib文件在

/usr/lib

python3的同理

最后在编译的时候添加上对应的参数设置

cmake -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib

或者直接这样写

$ cmake .. \
-DPYTHON_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())")  \
-DPYTHON_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))")

如果是anaconda要激活对应环境运行.

参考地址

  1. https://stackoverflow.com/questions/24174394/cmake-is-not-able-to-find-python-libraries
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值