質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.33%

make時にPython.hが認識されない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,371

shmpwk

score 13

[問題]
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

しかし、最初と同じエラーが出ます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

0

こちら全てインストールからやり直してエラーが消えました

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

エラーはgccが出しているので、挙げられている環境変数は直接関係ないと思います。

おそらくpython-devとかいう名前のパッケージをapt installすれば解決するのではないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/10/22 14:15

    ご回答ありがとうございます。
    まず、gccがエラーを出しているというのは、どこで判断ができるか教えていただきたいです。
    また、python-devは既に最新のものがインストール済みでした。

    キャンセル

  • 2019/10/22 14:22

    エラーメッセージにcppと出ていますので問題はCコンパイラ関係です。ubuntuなのでgccだろうと判断しました。
    環境変数で探索ディレクトリを追加指定してやればどうでしょうか。
    参考:
    https://qiita.com/DQNEO/items/4e5c2eca2761ec08b922

    キャンセル

  • 2019/10/23 09:03 編集

    すみません、あまりよくわからず調べて返信に時間がかかってしまいましたが、環境変数で探索ディレクトリを追加指定するのはcmakeのオプション-Dで追加するということでしょうか?gccのオプション -Iをやるということでしょうか?
    前者はもともとやっているので、後者を試してみましたが、ファイルがみつからないと出ました。
    ```
    $ gcc -I /home/qcmp/.pyenv/versions/anaconda3-5.3.1/envs/cv/include/python3.7m Python.h
    gcc: error: Python.h: そのようなファイルやディレクトリはありません
    gcc: fatal error: no input files
    ```
    パスはあっていると思うのですが、、、

    キャンセル

  • 2019/10/23 09:20 編集

    python3.7m下にPython.cを作ってPython.hをincludeしてみましたが、ダメでした。

    ```
    ~$ gcc -I /home/qcmp/.pyenv/versions/anaconda3-5.3.1/envs/cv/include/python3.7m Python.c
    gcc: error: Python.c: そのようなファイルやディレクトリはありません
    gcc: fatal error: no input files
    compilation terminated.
    ```

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る