如何设置python的默认库路径

时间:2017-03-02 06:57:49

标签: python opencv cmake

我正在使用Centos 7.2 64位。 python的默认版本是2.7.5。我安装了一个2.7.13的anaconda版本。当我将anaconda的bin路径添加到PATH变量时,python的默认解释器设置为2.7.13。但是,当我安装opencv时,我在执行cmake时收到了此警告消息:

Could NOT find PythonLibs: Found unsuitable version "2.7.5", but required is exact version "2.7.13" (found /lib64/libpython2.7.so)

似乎python库的默认路径是/lib64/libpython2.7.so。我搜索了解决方案,它说如果我设置环境变量PYTHON_LIBRARY,这将解决。所以我把它添加如下:

export PYTHON_LIBRARY=/ghome/mypath/anaconda2/lib/libpython2.7.so

我重新登录。问题仍然存在。 我的cmake命令如下:

cmake -D BUILD_opencv_gpu=OFF -D WITH_CUDA=OFF -D WITH_1394=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/ghome/mypath/software/try_opencv/installed ..

我几个小时都陷入了这个问题。 谢谢大家的帮助!!!

3 个答案:

答案 0 :(得分:2)

来自documentation的CMake模块FindPythonLibs

  

如果您要指定要使用的Python安装,则应修改以下缓存变量:

  • PYTHON_LIBRARY - python库的路径
  • PYTHON_INCLUDE_DIR - 找到Python.h的路径

因为版本是从patchlevel.h 头文件中提取的(这是Find CMake模块的常见做法),您需要指定库和包含目录< /强>:

cmake -DPYTHON_LIBRARY=/ghome/mypath/anaconda2/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR=<...> <other-cmake-arguments>

答案 1 :(得分:1)

除了以下内容之外,您还可以在运行时使用PYTHONPATH环境变量添加此路径:

import sys
sys.path.append('/home/user/python-libs')

您还没有提到操作系统,如果是Linux,那么您可以尝试搜索sys.path中列出的目录。

import sys
print '\n'.join(sys.path)

因此,Python会找到已安装到这些位置的任何软件包。 sys.path使用当前工作目录填充,后跟PYTHONPATH环境变量中列出的目录,然后是依赖于安装的默认路径,这些路径由站点模块控制。 假设未设置PYTHONPATH环境变量,sys.path将包含当前工作目录以及站点模块对其进行的任何操作。

答案 2 :(得分:-1)

我想我已经解决了这个问题。我将以下句子添加到我的.bashrc文件中并且有效。

export PYTHON_LIBRARY=/ghome/mypath/anaconda2/lib/libpython2.7.so
export PYTHON_INCLUDE_DIR=/ghome/mypath/anaconda2/include:/ghome/mypath/anaconda2/include/python2.7