Instalando o pacote Python gdalno virualenv no Linux
GDALfornece um bom conjunto de ferramentas para operações relacionadas ao GEO. No entanto, instalá-lo no virtualenv no Linux não é tarefa trivial.
Esta receita descreve como fazer isso.
Nota
aqui eu uso letras minúsculas gdalpara o pacote Python e maiúsculas GDALpara a biblioteca geral do sistema.
Exigências
- permite o uso de bibliotecas osgeo (instaladas via
gdalpacote Python) no virtualenv
- permitir a instalação no Linux Ubuntu
Métodos de instalação
Existem vários métodos para instalação. Um requer compilação e leva mais alguns minutos.
O outro está usando o pacote de rodas pygdale é muito rápido. De qualquer forma, para criar o pacote wheel, é necessário criá-lo uma vez e a criação inclui a etapa de compilação de qualquer maneira.
Sobre GDALpacotes e versões
GDAL é uma biblioteca geral baseada em C (++) para cálculos relacionados ao GEO.
GDAL Os utilitários podem ser instalados em todo o sistema, o que disponibiliza bibliotecas compartilhadas, mas não instala o próprio pacote Python.
GDAL vem em versões diferentes e cada distribuição Linux pode, por padrão, instalar uma versão diferente.
O pacote Python gdalrequer compilação e não é trivial para instalação em sistemas baseados em Linux, pois espera que poucas variáveis ambientais sejam definidas. Isso dificulta a instalação no virtualenv.
Cada gdalversão pode assumir uma versão diferente GDALe falhará na instalação se a versão esperada não estiver presente no sistema.
O pacote Python pygdalé uma alternativa ao gdal, que instala exatamente as mesmas coisas que gdal, mas o faz de uma maneira muito mais amigável para o ambiente virtual.
pygdalvem em versões que refletem a GDALversão relacionada . Portanto, com a GDAL
versão 1.10.1 no sistema, você deve instalar a pygdalversão 1.10.1.
O pacote Python gdal(assim como pygdal) usa o pacote python raiz nomeado
osgeoe possui um conjunto de submódulos, sendo um deles osgeo.gdal.
Se necessário, versões diferentes do padrão GDALpodem ser instaladas e usadas. Isso está fora do escopo desta descrição.
Os pacotes de rodas podem ser compilados de forma cruzada, isso também está fora do escopo.
Instalando GDALno sistema
Como pygdalrequer GDALa presença de bibliotecas compartilhadas, devemos instalá-las primeiro.
Supondo que GDALainda não esteja instalado, a ligação gdal-configreclamará e lhe dará uma dica de como acompanhar:
$ gdal-config --version
The program 'gdal-config' is currently not installed. You can install it by typing:
sudo apt-get install libgdal-dev
Siga a dica e instale-a:
$ sudo apt-get install libgdal-dev
Cada distribuição pode usar uma versão diferente de GDAL. Para descobrir qual usamos:
$ gdal-config --version
1.10.1
Agora você sabe, GDALestá instalado e a versão é 1.10.1 (a versão pode variar).
Instalar a pygdalpartir do pacote de origem (requer compilação)
Atualmente, pygdalé fornecido apenas no pacote tar.gz, que contém fontes de pacote e requer compilação.
Supondo que a versão do GDALis 1.10.1e que o nosso virtualenv já esteja ativado:
$ pip install pygdal==1.10.1
Pode demorar um pouco para ser concluído, se precisar de sonolência, o que também pode exigir alguma compilação. Apenas espere.
Verifique, está instalado:
$ pip freeze|grep pygdal
pygdal==1.10.1.0
A partir de agora, você poderá usar o pacote osgeo em seu código Python como desejar exatamente da mesma maneira como se fosse instalá-lo pelo gdalpacote Python.
Criando um pacote de rodas para pygdal
Observe que os pacotes wheel devem ser criados para exatamente a mesma arquitetura, ou seja, devem corresponder:
- Arquitetura da CPU
- SO (Linux / Windows)
No nosso caso, também deve corresponder à versão do GDALinstalado.
As etapas a seguir podem ser feitas no virtualenv ou não, como você desejar.
Primeiro, verifique se o pacote de rodas está instalado:
$ pip install wheel
Supondo que você tenha GDALinstalado e a versão 1.10.1:
$ pip wheel pygdal==1.10.1.0
e espere até que seja concluído.
Depois disso, você encontrará a casa do leme do subdiretório e deve conter pacotes com a extensão `whl`:
$ ls wheelhouse
numpy-1.9.1-cp27-none-linux_x86_64.whl
pygdal-1.10.1.0-cp27-none-linux_x86_64.whl
Instalar a pygdalpartir de pacotes de rodas
A instalação a partir de pacotes formatados com rodas é muito mais rápida (um segundo em comparação com minutos), pois não requer compilação.
Observe que esse diretório com pacotes wheel pode ter qualquer nome, usaremos apenas o nome wheelhouse.
Ative o virtualenv primeiro.
Verifique se você possui no diretório wheelhouse os dois pacotes de roda necessários (para pygdale numpy).
Verifique se GDALestá instalado e se a versão corresponde à versão de pygdal.
Instale a pygdalpartir do pacote da roda:
$ pip install pygdal==1.10.1.0 -f wheelhouse
A casa do leme -f deve apontar para o diretório com arquivos whl.
Não há necessidade de instalar numpy, ele é instalado automaticamente.