【问题标题】:How to set the default library path for python如何设置python的默认库路径
【发布时间】:2017-03-02 06:57:48
【问题描述】:

我使用的是 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 ..

我已经被这个问题困了好几个小时了。 谢谢大家帮助我!!!

【问题讨论】:

  • 在最后的路径变量中添加 2.7.13 python exec 路径。它将覆盖之前定义的其他人
  • 我已经将anaconda python的bin路径添加到PATH变量中了。这成功了,因此 python 的默认解释器是 python 2.7.13。但是问题是python的默认库还是python 2.7.5。我希望知道如何将默认库更改为 python 2.7.13。谢谢。

标签: python opencv cmake


【解决方案1】:

来自 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>

【讨论】:

    【解决方案2】:

    除了:

    之外,您还可以在运行时使用 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 将包含当前工作目录以及站点模块对其进行的任何操作。

    【讨论】:

      【解决方案3】:

      我想我已经解决了这个问题。我将以下句子添加到我的 .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
      

      【讨论】:

      • 不要将此添加到 .bashrc,使用 -DPYTHON_LIBRARY= 并将其添加到您的 CMake 调用中。
      猜你喜欢
      • 2022-11-25
      • 2017-01-19
      • 2019-03-26
      • 2012-02-02
      • 1970-01-01
      • 2013-12-15
      • 1970-01-01
      • 2012-01-21
      • 2021-07-30
      相关资源
      最近更新 更多