官方AnacondaRecipes/opencv-feedstock的conda-build未能找到libpng.h

jru*_*ren 14 python opencv conda

我已经在AnacondaRecipes中下载了opencv的官方conda配方.

我试图构建这个包执行:

conda-build recipe -c conda-forge
Run Code Online (Sandbox Code Playgroud)

当配方编译opencv时,我收到以下错误[ 72%] Built target opencv_dnn.错误如下:

[ 67%] Building CXX object modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/src/grfmt_png.cpp.o
/opt/conda/conda-bld/opencv_1521187259162/work/modules/imgcodecs/src/grfmt_png.cpp:62:10: fatal error: libpng/png.h: No such file or directory
 #include <libpng/png.h>
          ^~~~~~~~~~~~~~
compilation terminated.
modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/build.make:326: recipe for target 'modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/src/grfmt_png.cpp.o' failed
make[2]: *** [modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/src/grfmt_png.cpp.o] Error 1
CMakeFiles/Makefile2:4645: recipe for target 'modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/all' failed
make[1]: *** [modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Run Code Online (Sandbox Code Playgroud)

$PREFIX目录中查找,没有libpng文件夹,只有一个libpng16文件夹:

/opt/conda/conda-bld/opencv_1521187259162/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/
Run Code Online (Sandbox Code Playgroud)

我怀疑它必须与conda-build如何管理路径环境有关,但我不知道如何解决它.

环境:conda 4.4.11,操作系统:Ubuntu 16.04.

更新23/03/2018

我也尝试过:

  • 添加libpng/png.h到$ PREFIX目录指向的位置.
  • 添加/usr/include$PATH

两种情况都没有成功.

更新04/03/2018

  • libpng-dev 安装在环境中.

更新09/04/2018

更新12/04/2018

Har*_*eem 3

因此,您遇到的问题是您需要libpng-dev在操作系统上安装该库。既然您提到您正在 Ubuntu 环境中运行,您只需输入

sudo apt-get install libpng-dev
Run Code Online (Sandbox Code Playgroud)

希望这能解决问题!

更新

为什么不尝试使用链接中提供的命令安装 opencv:

conda config --add channels conda-forge
conda install opencv
Run Code Online (Sandbox Code Playgroud)