2016-10-05 25 views
2

簡単に私のプロジェクトにはCaffeを使いたいと思います。 make pycaffeに試すことができたときにCaffe + GPU + Opencv3.1 + Python3.5 + Anaconda:致命的なエラー:Python.h:そのようなファイルやディレクトリがありません

make all 
make pycaffe 
make test 
make runtest 

はしかし、それは渡すことはできません:

Python.h: No such file or directory 
私のOSは、私はすでに、すべて合格している Opencv3.1 + Python3.5 +アナコンダ+ GPUでのUbuntu 14.04であり、

ここに私の'makefile.config'があります。そして、私は確かに'Python.h'がパスに入っていると確信しています。それは私をかなり混乱させます。

USE_CUDNN := 1 
OPENCV_VERSION := 3 
ANACONDA_HOME := $(HOME)/anaconda3 
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ 
     $(ANACONDA_HOME)/include/python3.5m \ 
     $(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include \ 
PYTHON_LIB := $(ANACONDA_HOME)/lib 
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 
USE_PKG_CONFIG := 1 
PYTHON_LIBRARIES := boost_python3 python3.5m 
PYTHON_INCLUDE := /usr/include/python3.5m \ 
       /usr/lib/python3.5/dist-packages/numpy/core/include 

私はPython3.5を使用するので、私は次のコメントを解除するので:

PYTHON_INCLUDE := /usr/include/python2.7 \ 
     /usr/lib/python2.7/dist-packages/numpy/core/include 
PYTHON_LIB := /usr/lib 

私は本当にあなたがPYTHON_INCLUDEための2つの定義を持っている、誰かが助けることができる感謝

答えて

2

私は、Ubuntu 14.04でcaffeを設定するのに一週間を費やしていました。なぜなら、時間がかかりすぎる理由は、OpenCv Pythonの最新バージョンを使用しているからです。アナコンダ。ここで私の経験を共有したいと思います。

  1. Makefile.config

    # cuDNN acceleration switch (uncomment to build with cuDNN). 
    USE_CUDNN := 1 
    # Uncomment if you’re using OpenCV 3 
    OPENCV_VERSION := 3 
    # CUDA directory contains bin/ and lib/ directories that we need. 
    CUDA_DIR := /usr/local/cuda 
    # CUDA architecture setting: going with all of them. 
    # For CUDA < 6.0, comment the *_50 lines for compatibility. 
    CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ 
    -gencode arch=compute_20,code=sm_21 \ 
    -gencode arch=compute_30,code=sm_30 \ 
    -gencode arch=compute_35,code=sm_35 \ 
    -gencode arch=compute_50,code=sm_50 \ 
    -gencode arch=compute_50,code=compute_50 
    # BLAS choice: atlas for ATLAS (default) 
    BLAS := atlas 
    # We need to be able to find Python.h and numpy/arrayobject.h. 
    ANACONDA_HOME := $(HOME)/anaconda3 
    PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ 
    $(ANACONDA_HOME)/include/python3.5m \ 
    $(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include \ 
    # Uncomment to use Python 3 (default is Python 2) 
    PYTHON_LIBRARIES := boost_python3 python3.5m 
    # We need to be able to find libpythonX.X.so or .dylib. 
    PYTHON_LIB := $(ANACONDA_HOME)/lib 
    # Whatever else you find you need goes here. 
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 
    # N.B. both build and distribute dirs are cleared on `make clean` 
    BUILD_DIR := build 
    DISTRIBUTE_DIR := distribute 
    # The ID of the GPU that ‘make runtest’ will use to run unit tests. 
    TEST_GPUID := 0 
    # enable pretty build (comment to see full commands) 
    Q ?= @ 
    
  2. /.bashrc

    #Caffemake 
    export PYTHONPATH=~/caffe/python/:$PYTHONPATH 
    #Opencv 
    export LD_LIBRARY_PATH=/home/kaku/anaconda3/lib:$LD_LIBRARY_PATH 
    export LD_LIBRARY_PATH=”/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH” 
    
  3. 注:

    1. library must be installed: 
    libboost-all-dev, although in some tutorial mentioned must install libboost1.55-all-dev. 
    protobuf-cpp-3.0.0-beta-2.zip or upper one 
    protobuf-python-3.0.0-beta-2.zip or upper one 
    http://blog.csdn.net/lien0906/article/details/51784191 
    https://github.com/google/protobuf/issues/1276 
    
  4. その他のデバッグ:で詳細。

+0

優秀!デフォルトのMakefileから**変更**を強調してください。 – Shai

+0

私はまだ根本的な原因を理解できません。なぜシステムのデフォルトのpython2やpython3のインクルードフォルダを使用できないのですか?これは本当にこの問題を引き起こしています。私はGentooシステム上で同じ問題を抱えています。 – kensai

0

:あなたはかどうかを判断する必要がありますあなたは "python3"フレーバー、または "anaconda"フレーバーのために行く...

とにかくあなたのpython.hファイルはありますか?シェルを試してください

find/-name "Python.h" -type f 

実際にどこを参照してください。あなたのmakefile.configのPYTHON_INCLUDEの正しい設定を選んでください。

+1

本当にありがとうございます。私はこの問題を解決しました。 – Kaku

+0

@Kakuはこの問題を抱える次の人の靴に身を置き、この記事の情報で解決することができますか?そうでない場合は、この問題をどのように解決したかを記した独自の回答を投稿することを検討してください。 – Shai

0

同じ問題に直面してGentooシステムにいた後、私は別のことを試しました。私は2つのpythonインスタンスを同時にGentooスロットにインストールしました:

ares ~ # eselect python list 
Available Python interpreters, in order of preference: 
    [1] python3.4 
    [2] python2.7 

私のデフォルトは2.7だったので、私は3.4に切り替えようとしました。まあ問題は、2つのファイルにいくつかの変更が必要だということです。

私は2.7と同様の変更が簡単に機能しなかったことに注意して、パスが正しいだったが、何かが、私はPythonの3(3で動作するように変更され、壊れ基礎となる...

Makefile.configファイルです。4):

PYTHON_LIBRARIES := boost_python3 python3.4m 
PYTHON_INCLUDE := /usr/include/python3.4m \ 
       /usr/lib64/python3.4/site-packages/numpy/core/include 

これを変更するだけで、まだCMakeが2.7を指しているとすぐには機能しません。私がやっによって確認された:

mkdir build; cd build;cmake ..; 

をし、出力されました:

-- Python: 
-- Interpreter  : /usr/bin/python2.7 (ver. 2.7.12) 
-- Libraries   : /usr/lib64/libpython2.7.so (ver 2.7.12) 
-- NumPy    : /usr/lib64/python2.7/site-packages/numpy/core/include (ver 1.12.1) 

だから私はCMakeLists.txtファイルに次の行を変更:(3へ変更値2)に

set(python_version "2" CACHE STRING "Specify which Python version to use") 

set(python_version "3" CACHE STRING "Specify which Python version to use") 

そして再びcmakeを行った最終的に得た:

-- Python: 
-- Interpreter  : /usr/bin/python3 (ver. 3.4.5) 
-- Libraries   : /usr/lib64/libpython3.4m.so (ver 3.4.5) 
-- NumPy    : /usr/lib64/python3.4/site-packages/numpy/core/include (ver 1.12.1) 

これで、make -j8コマンドは問題なく終了します。私はコンパイル(-j8)でマルチスレッドオプションを使用しましたが、-j1(シングルスレッド)のみを使用することを提案しているフォーラムで見つかったように、これは私には当てはまりませんでした。

0

私は私のMake.configで以下があります。

PYTHON_LIB := /usr/lib 

PYTHON_INCLUDE := /usr/include/python2.7 \ 
       /usr/lib/python2.7/dist-packages/numpy/core/include 

そして、私の〜/ .bashrcの中で次のように:

export PYTHONPATH=$HOME/caffe/python 
export CAFFE_ROOT=$HOME/caffe 

あなたがCDの$ CAFFE_ROOTに次のように実行する必要があります。 すべてを作る make pycaffe make test make runtest

私の設定はCentOSとPython用です2.7でも同様の考え方でなければならない。

[[email protected] caffe]$ lsb_release -a 
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch 
Distributor ID: CentOS 
Description: CentOS Linux release 7.4.1708 (Core) 
Release: 7.4.1708 
Codename: Core 
[[email protected] caffe]$ uname -a 
Linux ivcgpu1.bu.edu 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 
関連する問題