Я задал этот вопрос о переполнении стека, прежде чем понял, что этот сайт существует. Поскольку этот сайт более уместен, я спрошу это и здесь.
Я пытаюсь установить 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 мог найти файлы заголовков?
python
gdal
ubuntu
installation
Кевин
источник
источник
Ответы:
Ответ selimnairb близок, но у вас не будет заголовков, если вы не установили libgdal-dev:
с этим сделано,
а потом
Компиляция завершилась, и в моей виртуальной среде есть GDAL. Уф!
(отредактируйте 2018) Примечание. Убедитесь, что вы установили правильную версию и избежали каких-либо проблем. получить версию с
gdal-config --version
. а потом:источник
$ pip install GDAL==10.0
pip install GDAL==1.10.0
.Заголовочные файлы не могут быть найдены по какой-либо причине. Может быть, вы работаете внутри Виртуальной среды, или они не там, где должны быть по какой-то причине. В любом случае вы можете указать include dirs при установке gdal через pip.
Первая загрузка Python's GDAL:
в более поздних версиях pip (> = 9.0.0)
pip install --no-install
не существует:затем укажите, где находятся заголовки:
затем установите его:
в более поздних версиях pip (> = 9.0.0)
pip install --no-download
не существует:Вот еще один способ установить gdal python:
после этого откройте IDLE:
и ты в порядке!
источник
gdal-config --libs -> -L/usr/lib -lgdal
pip install --no-install GDAL
я получаю сообщение об ошибке:__main__.gdal_config_error: [Errno 2] No such file or directory
Есть идеи?brew install gdal
и использовал более старую версию пакета GDAL Python:pip install --global-option=build_ext --global-option="-L/usr/local/include/gdal/" 'gdal==1.9.1'
После подмножества этого совета я получил Python GDAL 1.11.0 (решение должно быть независимым от версии, см. Ниже) для работы в Ubuntu 14.04 с pip:
Установить зависимости:
pip install путем передачи пути включения (префикс с
sudo
для общесистемной установки) и указания pip для установки версии, совпадающей с установленной системой версией GDAL:источник
sudo pip install --no-use-wheel -r python_requirements.txt --global-option=build_ext --global-option="-I/usr/include/gdal"
python_requirements.txt указывает более старую версию gdal. Я сомневаюсь, что это будет иметь значение, если честно, но весь набор установки pip завершается успешно. U 12.04x64Установка пакета Python
gdal
в virualenv в LinuxGDAL
предоставляет хороший инструментарий для операций, связанных с GEO. Тем не менее, установка его в virtualenv в Linux не является тривиальной задачей.Этот рецепт описывает, как это сделать.
Требования
gdal
пакет Python) в virtualenvМетоды установки
Есть несколько способов установки. Один требует компиляции и занимает несколько минут больше.
Другой использует пакет
pygdal
пакета колеса и очень быстр. В любом случае, для создания пакета wheel нужно создать его один раз, и в любом случае создание включает в себя этап компиляции.О
GDAL
пакетах и версияхGDAL
общая библиотека на языке C (++) для расчетов, связанных с GEO.GDAL
Утилиты могут быть установлены во всей системе, что делает общие библиотеки доступными, но не устанавливает сам пакет Python.GDAL
поставляется в разных версиях, и каждый дистрибутив Linux может по умолчанию устанавливать разные версии.Пакет Python
gdal
требует компиляции и не является тривиальной для установки в системах на основе Linux, так как он ожидает установки нескольких переменных среды. Это затрудняет установку в virtualenv.Каждая
gdal
версия может принимать разные версииGDAL
и не будет установлена, если ожидаемая версия отсутствует в системе.Пакет Python
pygdal
является альтернативой пакетуgdal
, который устанавливает точно такой же материал, как иgdal
, но делает это гораздо более дружелюбным образом.pygdal
поставляется в версиях, отражающих связаннуюGDAL
версию. Таким образом, имеяGDAL
версию 1.10.1 в системе, вы должны установитьpygdal
версию 1.10.1.Пакет Python
gdal
(также какpygdal
) использует корневой именованный пакет Pythonosgeo
и имеет множество подмодулей, один из которыхosgeo.gdal
.При необходимости
GDAL
могут быть установлены и использованы версии, отличные от стандартных . Это выходит за рамки этого описания.Пакеты колес могут быть скомпилированы, это также выходит за рамки.
Установка
GDAL
в системуПоскольку
pygdal
требуютсяGDAL
общие библиотеки, мы должны сначала установить их.Предполагая,
GDAL
что еще не установлен, звонящийgdal-config
будет жаловаться и подскажет, как действовать:Следуйте подсказке и установите ее:
Каждый дистрибутив может использовать разные версии
GDAL
. Чтобы узнать, какие мы используем:Теперь вы знаете,
GDAL
установлена и версия 1.10.1 (версия может отличаться).Установить
pygdal
из исходного пакета (требуется компиляция)В настоящее время
pygdal
предоставляется только в пакете tar.gz, который содержит исходные коды пакета и требует компиляции.Предполагая, что версия
GDAL
is1.10.1
и что наш virtualenv уже активирован:Может потребоваться некоторое время, чтобы завершить, если это нужно NumPy, что также может потребовать некоторой компиляции. Просто подожди.
Проверьте, установлено ли:
Теперь вы можете использовать пакет osgeo в своем коде Python так, как вам нравится, точно так же, как если бы вы устанавливали его с помощью
gdal
пакета Python.Создание пакета колес для
pygdal
Обратите внимание, что пакеты wheel должны быть созданы для точно такой же архитектуры, а именно должны соответствовать:
В нашем случае он также должен соответствовать версии
GDAL
установленной.Следующие шаги могут быть выполнены в virtualenv или нет, как вам нравится.
Сначала убедитесь, что установлен колесный пакет:
Предполагается, что вы
GDAL
установили и он имеет версию 1.10.1:и ждать, пока он не завершится.
После этого вы найдете подкаталог рулевой рубки, который будет содержать пакеты с расширением `whl`:
Установить
pygdal
с колесных пакетовУстановка из пакетов в формате wheel выполняется намного быстрее (секунда по сравнению с минутами), так как не требует компиляции.
Обратите внимание, что каталог с пакетами wheel может иметь любое имя, мы будем использовать только имя wheelhouse.
Сначала активируйте virtualenv.
Убедитесь, что в каталоге рулевой рубки есть оба требуемых пакета колес (для
pygdal
иnumpy
).Убедитесь,
GDAL
что установлен и версия соответствует версииpygdal
.Установить
pygdal
из пакета колеса:-F рубка должна указывать на каталог с файлами whl.
Нет необходимости устанавливать
numpy
, он устанавливается автоматически.источник
pygdal
для победы!! pypi : «Virtualenv и setuptools дружественная версия стандартных привязок Python GDAL» <3Да, выполнение следующей операции перед запуском PIP:
export CPLUS_INCLUDE_PATH = / usr / include / gdal
export C_INCLUDE_PATH = / usr / include / gdal
источник
Проблема с pip, устанавливающим gdal, заключается в том, что он получает только привязки, а не всю библиотеку, поэтому он может быть сложным. Один из способов решить эту проблему - использовать команду pip для загрузки, но не для установки. Затем вы настраиваете расположение заголовка из файла конфигурации. Затем вы устанавливаете это. Мех.
У меня возникла та же проблема, но я понял, что написание сценария фабрики для перекомпиляции gdal и генерации привязок python займет меньше времени. Вы даже получаете преимущество filegdb с этим. Идите дальше и используйте суть, которую я написал, или подправьте ее к своему сердцу.
источник
Некоторое время спустя, это обеспечивает путь включения без необходимости спасения от установки pip: можно установить путь включения, используя переменную среды.
Предполагая, что заголовки находятся в / usr / include / gdal, введите
export CPLUS_INCLUDE_PATH=/usr/include/gdal
перед запуском пипа.
источник
/usr/include/gdal
Посмотрев направо и налево в поисках решения, вот что работает для меня в Ubuntu 14.04, даже изнутри virtualenv без доступа к системным пакетам:
Установить зависимости:
Установите флаги компилятора:
Установите версию, соответствующую системным библиотекам (на момент написания статьи Ubuntu Trusty использует заголовки 1.10):
источник
Теперь вы можете использовать virtualenv и setuptools дружественную версию стандартных привязок Python GDAL pygdal .
источник
У меня были похожие проблемы на Mac. Вот как я решил это:
Во-первых, я установил виртуальную среду Python 2.7, используя virtualenv. Дистрибутив Python был установлен в каталог с именем 'env'.
Затем я использовал Fink для установки GDAL
Я также установил gdal-dev, но это, возможно, не требовалось, так как он, возможно, уже был установлен с gdal.
Я проверил версию, установленную с помощью:
На моей установке это дало результат 1.11.1
При установке fink в gdal был установлен заголовочный файл cpl_port.h в / sw / include / gdal1. Проверьте вашу собственную установку. Затем я вошел:
Мне показалось, что это работает, но я еще не тестировал установку.
источник
На Fedora 24, которая имеет GDAL 2.0.2 в своих репозиториях, мне пришлось установить пакет Python следующим образом:
источник
Я получал похожую ошибку при попытке установить привязки Python GDAL на Mac (OS 10.10.5). Я установил базовое программное обеспечение GDAL с http://www.kyngchaos.com/software/frameworks, используя «Complete». Мне пришлось установить три переменные среды.
export C_INCLUDE_PATH = / Библиотека / Каркасы / GDAL.framework / Экспорт заголовков CPLUS_INCLUDE_PATH = / Библиотека / Каркасы / GDAL.framework / Экспорт заголовков LIBRARY_PATH = / Библиотека / Каркасы / GDAL.framework / Версии / Текущая версия / unix / lib
Последняя часть заключалась в том, чтобы добавить /Library/Frameworks/GDAL.framework/Programs в мой PATH.
echo 'export PATH = / Библиотека / Каркасы / GDAL.framework / Программы: $ PATH' >> ~ / .bash_profile
После этого pip смог установить GDAL для Python. Надеюсь это поможет.
источник
Эти пакеты gdal 0.10.1 хорошо работают для Ubuntu 12.04: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+sourcepub/4353415/+listing-archive-extra
Пакеты gdal 0.10.1 для другой версии Ubuntu: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+packages?field.name_filter=gdal&field.status_filter=published&field.series_filter=
источник
gdal 1.10.1
слишком, и просто сделал следующееpip install --global-option=build_ext --global-option="-I/usr/include/gdal" gdal==1.10.0
Чтобы ответить на конкретный аспект вопроса virtualenv:
Помните, что для этого
pygdal
может потребоваться другая версия GDAL по сравнению с тем, чтоGDAL
требует пакет привязок Python.Ниже приведено то, что я использовал для получения последних версий Fedora (20 и 23).
источник
Установка через Pip с помощью единой команды
Предполагая, что пакет разработки GDAL установлен и версии заголовочного файла верны, единственная команда, необходимая для установки GDAL из репозиториев PyPI, выглядит следующим образом:
Это, очевидно, предполагает, что расположение заголовочных файлов
/usr/include/gdal
.Установите последнюю версию GDAL
Чтобы установить GDAL с помощью команды pip выше, версия файлов заголовков должна быть аналогична версии, которую pip будет выполнять сборку. GDAL имеет обновленную двоичную ссылку по адресу: https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries .
Как установить на OpenSUSE
По приведенной выше ссылке есть URL-адрес, встроенный в нижнюю точку обновленного набора ГИС-пакетов для OpenSUSE 42.1 http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1/Application: Geo.repo
Заменить на соответствующую упаковку. И если не использовать,
zypper
есть дополнительная информация на https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinariesисточник
У меня была такая же проблема на Windows 10. После некоторых экспериментов я пришел с этим решением.
PYTHONPATH=c:\python36
PATH=C:\python36\Scripts\;C:\python36\;%PATH%
pip install *.whl
(* .wl с шага 2)источник
Если вы используете Docker, мы открываем исходный код нашего контейнера, что упрощает использование GDAL и Python 3. Контейнер содержит шаги, описанные выше, чтобы вы могли быстро использовать GDAL с вашими приложениями.
thinkwhere / GDAL-Python
источник
Этот подход работал для меня:
Или как часть Dockerfile:
источник
Если вы используете дистрибутив на основе Debian, библиотеки Python GDAL доступны через ваш менеджер пакетов и могут быть просто установлены с
sudo apt install python-gdal
или жеsudo apt install python3-gdal
источник
В Ubuntu 16.04 с conda в докер-контейнере (стек jupyter)
источник
В Ubuntu более простое решение для установки последней версии gdal для python3: установка файлов библиотеки через
libgdal-dev
и обертка python черезpython-gdal
для python2:
источник
Вы также можете столкнуться с проблемой использования памяти.
При запуске
pip install gdal==2.2.3
gcc запускается для компиляции чего-либо, и это увеличивает использование памяти.Если у вас недостаточно памяти, произойдет сбой компилятора с сообщением
Чтобы это исправить, вам нужно добавить больше оперативной памяти или освободить некоторые.
источник
Если вы используете Travis CI и вам нужна последняя версия GDAL для Python, вот пример того, как
.travis.yml
будет выглядеть часть файла:источник