为什么CMake使用Anaconda的Python?

4

我一直在Ubuntu 16.04上运行OpenCV时遇到问题。在遇到找不到链接和缺少库的警告后,我意识到OpenCV正在Anaconda路径中寻找库。

我重命名了Anaconda文件夹,从PATH、LDPATH和PYHONPATH中删除了所有关于它的引用,并确保在根目录下安装了所有必要的库。

但这还不够,我收到一个建议去重新构建OpenCV。我回到OpenCV目录,进入build文件夹,并像OpenCV的安装指南建议的那样运行了 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个回答

3

我通过更深入地分析CMake对所有未指定的参数假设了什么来解决这个问题。通过运行

cmake-gui

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接