我一直在努力解决在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?
答案 0 :(得分:1)
我通过深入分析CMake实际为我未指定的所有参数做出的假设来解决它。通过运行
cmake-gui
然后搜索包含anaconda
的所有字段我意识到由于某种原因,CMake正在使用Anaconda安装的Python3,并且它还找到了Anaconda的JPEG,TIFF和PNG库。
由于我个人在Anaconda上遇到过很多此类问题,而我个人并不真的需要它用于其他项目,我只是删除了Anaconda,并从头开始重建OpenCV。这次成功了。