1

我正在尝试使用 Python 2.7 绑定在 Ubuntu 16.04 上安装 Opencv 3.2.0。当我以这种方式安装 Opencv 3.1.0 时,Fabric 脚本运行良好,但是当我尝试 3.2.0 时,我收到以下错误:

[ 83%] Building CXX object modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o
In file included from /srv/envs/anim8/local/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:4:0, from /srv/envs/anim8/local/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:18, from /root/opencv-3.2.0/modules/python/src2/cv2.cpp:10: /srv/envs/anim8/local/lib/python2.7/site-packages/numpy/core/include/numpy/npy_common.h:17:5: warning: "NPY_INTERNAL_BUILD" is not defined [-Wundef]
#if NPY_INTERNAL_BUILD
     ^
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.
modules/python2/CMakeFiles/opencv_python2.dir/build.make:320: recipe for target 'modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o' failed
make[2]: *** 
[modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o] Error 4
CMakeFiles/Makefile2:20394: recipe for target 'modules/python2/CMakeFiles/opencv_python2.dir/all' failed
make[1]: *** [modules/python2/CMakeFiles/opencv_python2.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

我正在使用 Fabric 脚本,我在下面包含了相关部分:

cv_ver = '3.2.0'

sudo('apt-get install -y build-essential cmake pkg-config')
sudo('apt-get install -y python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg8-dev zlib1g-dev')
sudo('apt-get install -y zip unzip')

sudo('apt-get install -y libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev')

sudo('apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev')
sudo('apt-get install -y libxvidcore-dev libx264-dev')

sudo('sudo apt-get install -y libgtk-3-dev')

sudo('apt-get install -y libatlas-base-dev gfortran')

sudo('apt-get install -y python2.7-dev python3.5-dev')

with cd('~/'):
    run('wget -O opencv.zip https://github.com/Itseez/opencv/archive/{cv_ver}.zip'.format(cv_ver=cv_ver))
    run('unzip opencv.zip')
    run('wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/{cv_ver}.zip'.format(cv_ver=cv_ver))
    run('unzip opencv_contrib.zip')

with cd('~/opencv-{cv_ver}/'.format(cv_ver=cv_ver)):
    run('mkdir build')
with cd('~/opencv-{cv_ver}/build/'.format(cv_ver=cv_ver)):
    run('pip install numpy')
    run('cmake -D CMAKE_BUILD_TYPE=RELEASE \
            -D CMAKE_INSTALL_PREFIX=/usr/local \
            -D INSTALL_PYTHON_EXAMPLES=ON \
            -D INSTALL_C_EXAMPLES=OFF \
            -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-{cv_ver}/modules \
            -D PYTHON_EXECUTABLE={venv}/bin/python \
            -D BUILD_EXAMPLES=ON ..'.format(
                venv=configuration.VIRTUALENV_PATH, 
                cv_ver=cv_ver)
            )
    run('make')
    sudo('make install')
    sudo('ldconfig')

任何帮助将不胜感激。

4

2 回答 2

3

首先将目录更改为 "/srv/envs/anim8/local/lib/python2.7/site-packages/numpy/core/include/numpy"

然后使用ls命令。

打开文件npy_common.h并更改行

#if NPY_INTERNAL_BUILD#ifndef NPY_INTERNAL_BUILD

编写以下命令

#define NPY_INTERNAL_BUILD 刚过#ifndef NPY_INTERNAL_BUILD

于 2017-07-01T12:55:35.153 回答
0

Atul 的回答帮助了我,但这只是解决方案的一部分。我得到了 fatal error: hdf5.h: No such file or directory

为了解决这个添加:

find_package(HDF5) include_directories(${HDF5_INCLUDE_DIRS})

在 modules/python/common.cmake 文件的末尾。

于 2017-07-01T16:24:30.930 回答