• opecv 编译出错


    请坚持看完,再操作

    背景:

    要让opencv支持darknet,对opencv库进行修改和编译,根据这个教程

    报错:

    执行:make -j2 时报错如下:

    [100%] Built target opencv_perf_video
    [100%] Building CXX object modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o
    /Imgfit/ImageReview-v3/ImageReview_SensitiveWordDetection/chi_ocr/make_cv/opencv-4.0.1/modules/python/src2/cv2.cpp:9:10: fatal error: Python.h: No such file or directory
    #include <Python.h>
    ^~~~~~~~~~
    compilation terminated.
    modules/python3/CMakeFiles/opencv_python3.dir/build.make:81: recipe for target 'modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o' failed
    make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] Error 1
    CMakeFiles/Makefile2:2661: recipe for target 'modules/python3/CMakeFiles/opencv_python3.dir/all' failed
    make[1]: *** [modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
    Makefile:181: recipe for target 'all' failed
    make: *** [all] Error 2

    解决:

    first day:

    找了好多天,试了好多种方法,终于这个方法对我是有效的:点我

    具体就是删掉两个文件:

    CMakeVars.txt

    CMakeCache.txt

    再次make -j2,成功了

    second day:

    虽然编译通过,但我的程序依旧报错,所以我选择重新再编译一次。

    先把目标python环境的opencv全部卸载了,编译生成的文件也全部删掉,执行一下:make clean,从头开始。。。

    结果就是,不需要删除CMakeVars.txt,CMakeCache.txt也能编译成功

    接下来去测试编译好的opencv:(要测试的是cmake -d……时指定的python环境,即指定的是python3.6,就去测python3.6):

    #python3.6 #启动python3.6
    >>> import cv2
    >>> not found cv2... ...
    

     无法import cv2原因是python找不到编译好的opencv,现在要确定编译好的opencv在哪。

    # find / -name cv2.cpython-36m-x86_64-linux-gnu.so
    /data/env/face_ai/lib/python3.6/site-packages/cv2/cv2.cpython-36m-x86_64-linux-gnu.so
    

     较高版本的opencv就去查找文件:cv2.cpython-36m-x86_64-linux-gnu.so,低版本的去查找:cv2.so

    现在确定了编译好的opencv路径是:/data/env/face_ai/lib/python3.6/site-packages/ (每个人都不同,要根据自己查找到的为准)

    再将opencv安装路径让python知道:

    # vim ~/.bashrc
    

     添加新行:

    export PYTHONPATH=$PYTHONPATH:/data/env/face_ai/lib/python3.6/site-packages/
    

     让其生效:

    # source ~/.bashrc
    

    再去测试python环境就会发现可以成功import cv2了

  • 相关阅读:
    lnmp yum源的安装自己总结。
    bootstrap 表单validator与ajax验证!!!!
    laravel5.4 安装
    学习进度条
    作业8:单元测试练习(个人练习)
    作业7: 用户体验设计案例分析
    学生成绩录入系统设计与实现(1)
    作业5:需求分析
    结对项目—— 词频统计
    结对项目—— 词频统计
  • 原文地址:https://www.cnblogs.com/niulang/p/13740840.html
Copyright © 2020-2023  润新知