python - 为什么cmake要用Anaconda的Python?

标签 python opencv cmake anaconda

我一直在解决在 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 .. installation guide .令我惊讶的是,在结果中我发现了这些:

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

最佳答案

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

cmake-gui

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

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

关于python - 为什么cmake要用Anaconda的Python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49761751/

相关文章:

python - 看门狗(osx)不通知远程网络更改

c# - float * 是什么意思?

ios - ld : file too small for architecture i386

compiler-errors - Cmake目录错误

c++ - 如何在预处理时读取文件

python - 如何在 Python 中使用 protobuf 映射?

python - 使用 Crypto 打印 RSA 解密的字节字符串?

python - Selenium Desired Capabilities - 为 PhantomJS 驱动程序设置 handlesAlerts

c++ - OpenCv2.2 C++ filter2D

c++ - 使用 Visual Studio 2019 显示 CMake 的编译器命令行