[問題]
opencvの環境作りのためにcmakeのconfigure後にmakeしようとしたら、errorが出てしまいます。
[環境]
ubuntu 18.04
pyenv上でanaconda3-5.3.1
python3.7
opencv4.0.1とcontrib4.0.1の導入
[手順]
以下のようなオプションでcmakeをconfigureさせました。
(cv) (anaconda3-5.3.1/envs/cv) (base) qcmp@qcmp-Alienware-Aurora-R8:~/opencv/build$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules -D PYTHON3_EXECUTABLE=$CONDA_HOME/envs/cv/bin/python -D PYTHON3_PACKAGES_PATH=$CONDA_HOME/envs/cv/lib/python3.7/site-packages -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_ENABLE_NONFREE=ON -D BUILD_EXAMPLES=ON -D ENABLE_PRECOMPILED_HEADERS=OFF -D BUILD_TESTS=OFF -D PYTHON3_LIBRARY=/home/qcmp/anaconda3/lib/libpython3.7m.so -D PYTHON3_INCLUDE_DIR=/home/qcmp/anaconda3/include/python3.7m -D WITH_CUBLAS=OFF -D OpenBLAS_FOUND=OFF ..
その時の出力は文字数の関係でこちらのリンクに載せます。
その後make -j8
をすると、以下のようなエラーが出ます。(一部抜粋)
/home/qcmp/opencv/modules/python/src2/cv2.cpp:9:10: fatal error: Python.h: そのようなファイルやディレクトリはありません #include <Python.h> ^~~~~~~~~~ compilation terminated. modules/python3/CMakeFiles/opencv_python3.dir/build.make:62: 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:12152: recipe for target 'modules/python3/CMakeFiles/opencv_python3.dir/all' failed make[1]: *** [modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
Python.hがないということですが、cmake時に-D PYTHON3_LIBRARY=/home/qcmp/anaconda3/lib/libpython3.7m.so -D PYTHON3_INCLUDE_DIR=/home/qcmp/anaconda3/include/python3.7m
とパスを設定し、実際にPython.hがhome/qcmp/anaconda3/include/python3.7m/Python.h
にあります。
他に直すべきところを教えていただきたいです。
[追記]
cmakeのオプションを以下のように変えてみました。該当ファイルパスを検索しています。
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)") -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules -D PYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -D PYTHON3_EXECUTABLE=$(which python) -D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") -D PYTHON3_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR') + '/' + sysconfig.get_config_var('LDLIBRARY'))") -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_ENABLE_NONFREE=ON -D BUILD_EXAMPLES=ON ..
検索結果は以下のようになっています。
$ which python /home/qcmp/.pyenv/shims/python $ python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())" /home/qcmp/.pyenv/versions/anaconda3-5.3.1/envs/cv/include/python3.7m $ python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())" /home/qcmp/.pyenv/versions/anaconda3-5.3.1/envs/cv/lib/python3.7/site-packages $ python -c "import sys; print(sys.prefix)" /home/qcmp/.pyenv/versions/anaconda3-5.3.1/envs/cv $ python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR') + '/' + sysconfig.get_config_var('LDLIBRARY'))" /home/qcmp/.pyenv/versions/anaconda3-5.3.1/envs/cv/lib/libpython3.7m.so
しかし、最初と同じエラーが出ます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。