Пакет Python GDAL отсутствует в файле заголовка при установке через pip

Я пытаюсь установить gdal из pip pip install gdal внутри виртуальной среды (Ubuntu). Он терпит неудачу, потому что он не может найти cpl_port.h

extensions/gdal_wrap.cpp:2853:22: fatal error: cpl_port.h: No such file or directory
compilation terminated

Однако GDAL установлен правильно, а файл заголовка находится в /usr/include/gdal/cpl_port.h. Есть ли какая-либо переменная среды для GDAL, которая должна быть установлена ​​для того, чтобы pip мог найти файлы заголовков?

Ответы

Ответ 1

Как было предложено в другом потоке, экспорт некоторых переменных оболочки перед запуском pip работал безупречно. Путь для *_INCLUDE_PATH можно найти с помощью gdal-config --cflags.

# GDAL library must have been installed
sudo apt-get install libgdal-dev

# Set up pip and/or virtualenv stuff
...

# Now install Python binding for GDAL
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
pip install GDAL

Ответ 2

Ответ Tomyun работал у меня, при условии, что вы должны убедиться, что версия GDAL-dev, установленная через apt-get, соответствует версии, установленной pip.

Для Ubuntu 14.04 следующие команды:

# GDAL library must have been installed
sudo apt-get install libgdal-dev

# Set up pip and/or virtualenv stuff
...

# Now install Python binding for GDAL
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
pip3 install GDAL=1.10.0

Ответ 3

Использование PIP:

pip install --no-install GDAL

Затем cd в ENV/build/GDAL

python setup.py build_ext --include-dirs=/usr/include/gdal
pip install --no-download GDAL

(Источник: http://ubuntuforums.org/showthread.php?t=1769445)

Использование Buildout:

[gdal-bindings]
recipe = zc.recipe.egg:custom
egg = GDAL==1.9.1
include-dirs = /usr/include/gdal
library-dirs = /usr/lib

Ответ 4

Я также получал эту ошибку, когда тестировал установку в виртуальной среде моего пакета, который зависит от GDAL. В этом случае решение заключается в изменении зависимости от GDAL до pygdal в параметре install_requires в setup.py. Например:

install_requires=['pygdal'],

Ответ 5

попробуйте сделать:    brew установить gdal

после этого повторите попытку.