Установка пакета Python gdalв virualenv в Linux
GDALпредоставляет хороший инструментарий для операций, связанных с GEO. Тем не менее, установка его в virtualenv в Linux не является тривиальной задачей.
Этот рецепт описывает, как это сделать.
нота
здесь я использую строчные буквы gdalдля пакета Python и прописные буквы GDALдля общесистемной библиотеки.
Требования
- разрешить использование библиотек osgeo (установленных через
gdalпакет Python) в virtualenv
- разрешить установку на Linux Ubuntu
Методы установки
Есть несколько способов установки. Один требует компиляции и занимает несколько минут больше.
Другой использует пакет 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) использует корневой именованный пакет Python
osgeoи имеет множество подмодулей, один из которых osgeo.gdal.
При необходимости GDALмогут быть установлены и использованы версии, отличные от стандартных . Это выходит за рамки этого описания.
Пакеты колес могут быть скомпилированы, это также выходит за рамки.
Установка GDALв систему
Поскольку pygdalтребуются GDALобщие библиотеки, мы должны сначала установить их.
Предполагая, GDALчто еще не установлен, звонящий gdal-configбудет жаловаться и подскажет, как действовать:
$ gdal-config --version
The program 'gdal-config' is currently not installed. You can install it by typing:
sudo apt-get install libgdal-dev
Следуйте подсказке и установите ее:
$ sudo apt-get install libgdal-dev
Каждый дистрибутив может использовать разные версии GDAL. Чтобы узнать, какие мы используем:
$ gdal-config --version
1.10.1
Теперь вы знаете, GDALустановлена и версия 1.10.1 (версия может отличаться).
Установить pygdalиз исходного пакета (требуется компиляция)
В настоящее время pygdalпредоставляется только в пакете tar.gz, который содержит исходные коды пакета и требует компиляции.
Предполагая, что версия GDALis 1.10.1и что наш virtualenv уже активирован:
$ pip install pygdal==1.10.1
Может потребоваться некоторое время, чтобы завершить, если это нужно NumPy, что также может потребовать некоторой компиляции. Просто подожди.
Проверьте, установлено ли:
$ pip freeze|grep pygdal
pygdal==1.10.1.0
Теперь вы можете использовать пакет osgeo в своем коде Python так, как вам нравится, точно так же, как если бы вы устанавливали его с помощью gdalпакета Python.
Создание пакета колес для pygdal
Обратите внимание, что пакеты wheel должны быть созданы для точно такой же архитектуры, а именно должны соответствовать:
- Архитектура процессора
- ОС (Linux / Windows)
В нашем случае он также должен соответствовать версии GDALустановленной.
Следующие шаги могут быть выполнены в virtualenv или нет, как вам нравится.
Сначала убедитесь, что установлен колесный пакет:
$ pip install wheel
Предполагается, что вы GDALустановили и он имеет версию 1.10.1:
$ pip wheel pygdal==1.10.1.0
и ждать, пока он не завершится.
После этого вы найдете подкаталог рулевой рубки, который будет содержать пакеты с расширением `whl`:
$ ls wheelhouse
numpy-1.9.1-cp27-none-linux_x86_64.whl
pygdal-1.10.1.0-cp27-none-linux_x86_64.whl
Установить pygdalс колесных пакетов
Установка из пакетов в формате wheel выполняется намного быстрее (секунда по сравнению с минутами), так как не требует компиляции.
Обратите внимание, что каталог с пакетами wheel может иметь любое имя, мы будем использовать только имя wheelhouse.
Сначала активируйте virtualenv.
Убедитесь, что в каталоге рулевой рубки есть оба требуемых пакета колес (для pygdalи numpy).
Убедитесь, GDALчто установлен и версия соответствует версии pygdal.
Установить pygdalиз пакета колеса:
$ pip install pygdal==1.10.1.0 -f wheelhouse
-F рубка должна указывать на каталог с файлами whl.
Нет необходимости устанавливать numpy, он устанавливается автоматически.