Eu fiz essa pergunta no Stack Overflow antes de perceber que esse site existia. Como este site é mais apropriado, vou pedir aqui também.
Estou tentando instalar o gdal do pip pip install gdal
dentro de um ambiente virtual (Ubuntu). Falha porque não consegue encontrarcpl_port.h
extensions/gdal_wrap.cpp:2853:22: fatal error: cpl_port.h: No such file or directory
compilation terminated
No entanto, o GDAL está instalado corretamente e o arquivo de cabeçalho está localizado em /usr/include/gdal/cpl_port.h
. Existe alguma variável de ambiente para GDAL que precisa ser definida para que o pip encontre os arquivos de cabeçalho?
python
gdal
ubuntu
installation
Kevin
fonte
fonte
Respostas:
A resposta do selimnairb está próxima, mas você não terá os cabeçalhos, a menos que tenha instalado o libgdal-dev:
com isso feito,
e depois
A compilação foi concluída e eu tenho o GDAL no meu ambiente virtual. Ufa!
(editar 2018) Nota: Certifique-se de instalar a versão correta e evitar qualquer problema. recupere a versão com
gdal-config --version
. e depois:fonte
$ pip install GDAL==10.0
pip install GDAL==1.10.0
.Os arquivos de cabeçalho não podem ser encontrados por algum motivo. Talvez você esteja operando dentro de um ambiente virtual ou eles não estejam onde deveriam estar por algum motivo. Em qualquer caso, você pode especificar os diretórios de inclusão ao instalar o gdal via pip.
primeiro download gdal do python:
nas versões posteriores do pip (> = 9.0.0)
pip install --no-install
não existe:especifique onde estão os cabeçalhos:
instale-o:
nas versões posteriores do pip (> = 9.0.0)
pip install --no-download
não existe:Aqui está outra maneira de instalar o gdal python:
depois que aberto IDLE:
e você está pronto para ir!
fonte
gdal-config --libs -> -L/usr/lib -lgdal
pip install --no-install GDAL
recebo o erro:__main__.gdal_config_error: [Errno 2] No such file or directory
Alguma idéia?brew install gdal
pip install --global-option=build_ext --global-option="-L/usr/local/include/gdal/" 'gdal==1.9.1'
Depois de seguir um subconjunto deste conselho, foi assim que consegui instalar o Python GDAL 1.11.0 (a solução deve ser independente da versão, veja abaixo) para funcionar no Ubuntu 14.04 com pip:
Instale dependências:
instalação do pip, transmitindo o caminho de inclusão (prefixo
sudo
para instalação em todo o sistema) e instruindo o pip a instalar a versão correspondente à versão GDAL do sistema instalada:fonte
sudo pip install --no-use-wheel -r python_requirements.txt --global-option=build_ext --global-option="-I/usr/include/gdal"
python_requirements.txt especifica uma versão mais antiga do gdal. Duvido que seja importante para ser honesto, mas todo o conjunto de instalação do pip é concluído com êxito. U 12.04x64Instalando o pacote Python
gdal
no virualenv no LinuxGDAL
fornece 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.
Exigências
gdal
pacote Python) no virtualenvMé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
pygdal
e é 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
GDAL
pacotes e versõesGDAL
é 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
gdal
requer 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
gdal
versão pode assumir uma versão diferenteGDAL
e falhará na instalação se a versão esperada não estiver presente no sistema.O pacote Python
pygdal
é uma alternativa aogdal
, que instala exatamente as mesmas coisas quegdal
, mas o faz de uma maneira muito mais amigável para o ambiente virtual.pygdal
vem em versões que refletem aGDAL
versão relacionada . Portanto, com aGDAL
versão 1.10.1 no sistema, você deve instalar apygdal
versão 1.10.1.O pacote Python
gdal
(assim comopygdal
) usa o pacote python raiz nomeadoosgeo
e possui um conjunto de submódulos, sendo um delesosgeo.gdal
.Se necessário, versões diferentes do padrão
GDAL
podem 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
GDAL
no sistemaComo
pygdal
requerGDAL
a presença de bibliotecas compartilhadas, devemos instalá-las primeiro.Supondo que
GDAL
ainda não esteja instalado, a ligaçãogdal-config
reclamará e lhe dará uma dica de como acompanhar:Siga a dica e instale-a:
Cada distribuição pode usar uma versão diferente de
GDAL
. Para descobrir qual usamos:Agora você sabe,
GDAL
está instalado e a versão é 1.10.1 (a versão pode variar).Instalar a
pygdal
partir 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
GDAL
is1.10.1
e que o nosso virtualenv já esteja ativado: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:
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
gdal
pacote 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:
No nosso caso, também deve corresponder à versão do
GDAL
instalado.As etapas a seguir podem ser feitas no virtualenv ou não, como você desejar.
Primeiro, verifique se o pacote de rodas está instalado:
Supondo que você tenha
GDAL
instalado e a versão 1.10.1: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`:
Instalar a
pygdal
partir de pacotes de rodasA 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
pygdal
enumpy
).Verifique se
GDAL
está instalado e se a versão corresponde à versão depygdal
.Instale a
pygdal
partir do pacote da roda:A casa do leme -f deve apontar para o diretório com arquivos whl.
Não há necessidade de instalar
numpy
, ele é instalado automaticamente.fonte
pygdal
para a vitória!! pypi : "Virtualenv e setuptools versão amigável da GDAL padrão vínculos python" <3Sim, fazer o seguinte antes de executar o PIP parece funcionar:
exportar CPLUS_INCLUDE_PATH = / usr / include / gdal
exportar C_INCLUDE_PATH = / usr / include / gdal
fonte
O problema com a instalação do pip gdal é que ele apenas obtém as ligações, não a biblioteca inteira, para que possa ficar complicado. Uma maneira de resolvê-lo é usar o comando pip para fazer o download - mas não instalar. Depois, você ajusta o local do cabeçalho no arquivo de configuração. Então você instala isso. meh.
Eu estava tendo o mesmo problema, mas percebi que escrever um script de malha para recompilar o gdal e gerar as ligações python levaria menos tempo. Você ainda obtém o benefício do filegdb com isso. Vá em frente e use a essência que eu escrevi ou ajuste-a no conteúdo do seu coração.
fonte
Um tempo depois, isso fornece o caminho de inclusão sem precisar sair da instalação do pip: É possível definir o caminho de inclusão usando uma variável de ambiente.
Supondo que os cabeçalhos estejam em / usr / include / gdal, emita um
export CPLUS_INCLUDE_PATH=/usr/include/gdal
antes de executar o pip.
fonte
/usr/include/gdal
Depois de procurar uma solução à direita e à esquerda, aqui está algo que funciona para mim no Ubuntu 14.04, mesmo dentro de um virtualenv sem acesso aos pacotes do sistema:
Instale dependências:
Defina os sinalizadores do compilador:
Instale a versão correspondente às bibliotecas do sistema (no momento em que o Ubuntu Trusty está usando os cabeçalhos 1.10):
fonte
Agora você pode usar a versão amigável de virtualenv e setuptools das ligações python padrão do GDAL pygdal .
fonte
Eu estava tendo problemas semelhantes em um Mac. Foi assim que resolvi:
Primeiramente, configurei um ambiente virtual Python 2.7 usando o virtualenv. A distribuição Python foi instalada em um diretório chamado 'env'.
Eu então usei o fink para instalar o gdal
Também instalei o gdal-dev, mas isso pode não ter sido necessário, pois já pode ter sido instalado com o gdal.
Eu verifiquei a versão instalada usando:
Na minha instalação, produziu o resultado 1.11.1
A instalação do fdal do gdal instalou o arquivo de cabeçalho cpl_port.h em / sw / include / gdal1. Verifique sua própria instalação. Eu então entrei:
Isso pareceu funcionar para mim, mas ainda não testei a instalação.
fonte
No Fedora 24, que possui o GDAL 2.0.2 em seus repositórios, eu tive que instalar o pacote Python assim:
fonte
Eu estava recebendo um erro semelhante ao tentar instalar as ligações python GDAL em um mac (OS 10.10.5). Instalei o software GDAL básico em http://www.kyngchaos.com/software/frameworks usando o download "Completo". Eu tive que definir três variáveis de ambiente.
exportar C_INCLUDE_PATH = / Biblioteca / Frameworks / GDAL.framework / Cabeçalhos exportar CPLUS_INCLUDE_PATH = / Biblioteca / Frameworks / GDAL.framework / Cabeçalhos exportar LIBRARY_PATH = / Biblioteca / Frameworks / GDAL.framework / Versões / Atual / unix / lib
A peça final foi adicionar /Library/Frameworks/GDAL.framework/Programs ao meu PATH.
echo 'export PATH = / Biblioteca / Estruturas / GDAL.framework / Programas: $ PATH' >> ~ / .bash_profile
Depois disso, o pip conseguiu instalar o GDAL para python. Espero que isto ajude.
fonte
Estes pacotes gdal 0.10.1 funcionam bem para o Ubuntu 12.04: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+sourcepub/4353415/+listing-archive-extra
Pacotes gdal 0.10.1 para outra versão do ubuntu: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+packages?field.name_filter=gdal&field.status_filter=published&field.series_filter=
fonte
gdal 1.10.1
e fiz o seguintepip install --global-option=build_ext --global-option="-I/usr/include/gdal" gdal==1.10.0
Para responder ao aspecto específico da virtualenv da pergunta:
Cuidado que
pygdal
pode exigir uma versão diferente do GDAL, em comparação com o que oGDAL
pacote de ligações python exige.Abaixo está o que eu usei para obtê-lo nas versões recentes do Fedora (20 e 23).
fonte
Instalando via Pip com comando único
Supondo que o pacote de desenvolvimento GDAL esteja instalado e as versões do arquivo de cabeçalho estejam corretas, o único comando necessário para instalar o GDAL a partir de repositórios PyPI é o seguinte:
Obviamente, isso pressupõe a localização dos arquivos de cabeçalho
/usr/include/gdal
.Instale o GDAL atualizado
Para instalar o GDAL com o comando pip acima, a versão dos arquivos de cabeçalho precisa ser semelhante à versão em que o pip fará a compilação. O GDAL tem uma referência binária atualizada em: https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries .
Como instalar no OpenSUSE
Seguindo o link acima, há uma URL incorporada mais abaixo para um conjunto atualizado de pacotes GIS para o OpenSUSE 42.1 http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1/Application: Geo.repo
Substitua pela embalagem apropriada. E se não estiver usando,
zypper
há mais informações em https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinariesfonte
Eu tive o mesmo problema no Windows 10. Depois de algumas experiências, vim com esta solução.
PYTHONPATH=c:\python36
PATH=C:\python36\Scripts\;C:\python36\;%PATH%
pip install *.whl
(* .whl da etapa 2)fonte
Se você estiver usando o Docker, abrimos nosso contêiner de origem, o que simplifica o uso do GDAL e do Python 3. O contêiner captura as etapas descritas acima para permitir que você use rapidamente o GDAL com seus aplicativos.
thinkwhere / gdal-python
fonte
Se você estiver executando uma distribuição baseada no Debian, as bibliotecas python GDAL estão disponíveis no gerenciador de pacotes e podem ser simplesmente instaladas com
sudo apt install python-gdal
ousudo apt install python3-gdal
fonte
No Ubuntu 16.04 com conda no docker container (jupyter stack)
fonte
No ubuntu, uma solução mais simples para instalar o gdal mais recente para python3: instalar arquivos de biblioteca via
libgdal-dev
e wrapper python viapython-gdal
para python2:
fonte
Você também pode encontrar problemas com o uso da memória.
Ao executar o
pip install gdal==2.2.3
gcc, é iniciado para compilar algo e aumenta o uso de memória.Se você não tiver memória suficiente, o compilador falhará, com uma mensagem como
Para corrigi-lo, você precisa adicionar mais RAM ou liberar alguns.
fonte
Essa abordagem funcionou para mim:
Ou como parte de um Dockerfile:
fonte
Se você estiver usando o Travis CI e precisar de uma versão recente do GDAL para Python, aqui está um exemplo de como seria a parte de um
.travis.yml
arquivo:fonte