Фатальная ошибка: Python.h: такого файла или каталога нет (не решено с помощью python-devel)

При попытке скомпилировать pycaffe в Ubuntu 16.04 с установленной Anaconda 3.6 я получаю следующую ошибку:

python/caffe/_caffe.cpp:1:52: fatal error: Python.h: No such file or directory

Я попытался установить пакеты python-devel с

sudo apt-get install python3-dev 
sudo apt-get install python3.5-dev
sudo apt-get install python3.6-dev 

Но даже после попытки с каждым из них возникает одна и та же ошибка.

Правильный путь, кажется, добавлен в.bashrc

export PATH="home/jdevezas/anaconda/bin:$PATH"

И в makefile.config Caffe у меня есть

# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
#PYTHON_INCLUDE := /usr/include/python2.7 \
        /usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.

ANACONDA_HOME := /home/jdevezas/anaconda

#PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
#            $(ANACONDA_HOME)/include/python2.7 \
#            $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

# Uncomment to use Python 3 (default is Python 2)
 PYTHON_LIBRARIES := boost_python3 python3.5m
 PYTHON_INCLUDE := /usr/include/python3.5m \
                 /usr/lib/python3.5/dist-packages/numpy/core/include

Я также пробовал с Python 2.7 без результатов. Я проверил /usr/include/python3.5m и Python.h там. Предложения?

1 ответ

Для отслеживания пакетов, в которых находится файл, используйте

apt-file search Python.h 

В списке (для Ubuntu 20.04) показаны два вероятных кандидата на последнюю версию python: libpython3.8-dev и pypy3-dev. Вам необходимо установить пакет libpython3.8-dev.

Установите apt-файл с

sudo apt-get install apt-file

Затем обновите свою базу данных:

apt-file update

python.h заголовок находится в $CONDA_PREFIX/etc/include/python3.6m каталог.

В моем случае папка python находилась в /opt/anaconda3/include/, который я нашел

$ which conda
/opt/anaconda3/bin/conda

переменная $CONDA_PREFIX в моем случае было пусто, так как

$ echo $CONDA_PREFIX

напечатал просто пустую строку.

Другие вопросы по тегам