2017-03-02 30 views
0

我正在使用Centos 7.2 64位。 Python的默認版本是2.7.5。我安裝了一個2.7.13的anaconda版本。 python的默認解釋器設置爲2.7.13,因爲我將012aanaconda的路徑添加到PATH變量。然而,當我安裝了opencv,我做cmake時得到這個警告消息:如何設置python的默認庫路徑

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 .. 

我一直停留在這個問題上幾個小時。 謝謝大家的幫助!

+0

將2.7.13 python exec路徑添加到路徑變量末尾。它將覆蓋 – rakesh

+0

之前定義的其他人已經將PATH變量中的anaconda python的bin路徑添加到PATH變量中。這成功了,所以python的默認解釋器是python 2.7.13。但是,問題是Python的默認庫仍然是Python 2.7.5。我希望知道如何將默認庫更改爲Python 2.7.13。謝謝。 – pfc

回答

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> 
0

你還可以補充這條道路在運行時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將由當前工作目錄加上站點模塊對其進行的任何操作組成。

-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 
+0

不要將此添加到.bashrc中,請使用-DPYTHON_LIBRARY = 並將其添加到您的CMake調用中。 – usr1234567