为什么cmake使用Anaconda的Python?

时间:2018-04-10 19:43:38

标签: python opencv cmake anaconda

我一直在努力解决在Ubuntu 16.04上运行OpenCV的一些问题。在发现一些没有链接和缺少库警告的问题后,我意识到OpenCV正在寻找Anaconda路径中的库。

我已经重命名了Anaconda文件夹,从PATH,LDPATH和PYHONPATH中删除了它的任何引用,并确保我在root上安装了所有必需的库。

由于这还不够,我收到了重建OpenCV的建议。我回到了OpenCV目录,输入了build文件夹,并按照OpenCV installation guide的建议运行cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..。令我惊讶的是,在结果中我发现了这些:

--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.12)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)
--     packages path:               lib/python2.7/dist-packages
-- 
--   Python 3:
--     Interpreter:                 /home/raggot/anaconda3/bin/python3 (ver 3.6.3)
-- 
--   Python (for build):            /usr/bin/python2.7
--     Pylint:                      /home/raggot/anaconda3/bin/pylint (ver: unknown, checks: 110)

和这些:

--   Media I/O: 
--     ZLib:                        /home/raggot/anaconda3/lib/libz.so (ver )
--     JPEG:                        /home/raggot/anaconda3/lib/libjpeg.so (ver )
--     WEBP:                        build (ver encoder: 0x020e)
--     PNG:                         /home/raggot/anaconda3/lib/libpng.so (ver ..)
--     TIFF:                        /home/raggot/anaconda3/lib/libtiff.so (ver )
--     JPEG 2000:                   /home/raggot/anaconda3/lib/libjasper.so (ver )
--     OpenEXR:                     build (ver 1.7.1)
--     GDAL:                        NO
--     GDCM:                        NO

CMake是否告诉OpenCV现在会引用Python3和某些媒体库的/anaconda/路径?如果是这样,怎么会这样?在我的系统中存储这些链接的位置?我怎样才能避免OpenCV引用Anaconda?

1 个答案:

答案 0 :(得分:1)

我通过深入分析CMake实际为我未指定的所有参数做出的假设来解决它。通过运行

cmake-gui

然后搜索包含anaconda的所有字段我意识到由于某种原因,CMake正在使用Anaconda安装的Python3,并且它还找到了Anaconda的JPEG,TIFF和PNG库。

由于我个人在Anaconda上遇到过很多此类问题,而我个人并不真的需要它用于其他项目,我只是删除了Anaconda,并从头开始重建OpenCV。这次成功了。