Пакет 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
после этого повторите попытку.