Estou tentando empacotar um script Python que usa GDAL para PyPI. Comecei incluindo uma referência direta no meu setup.py
:
install_requires=['GDAL==1.11.2'],
Dessa forma, o pacote não foi instalado no meu ambiente virtual de teste:
extensions/gdal_wrap.cpp:2855:22: fatal error: cpl_port.h: No such file or directory
#include "cpl_port.h"
^
compilation terminated.
error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Eu tentei com uma referência a pygdal
, uma vez que está marcada como uma versão amigável para virtualenv:
install_requires=['pygdal'],
Dessa forma, a instalação termina sem erros (mas com a carga usual de avisos de compilação). No entanto, quando invoco o script, recebo esse erro de volta:
Traceback (most recent call last):
File "/home/desouslu/.virtualenvs/test_p3/bin/hasc2gml", line 5, in <module>
from pkg_resources import load_entry_point
File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 2716, in <module>
working_set.require(__requires__)
File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 685, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 588, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pygdal
Qual é a maneira correta de definir o GDAL como uma dependência?
Atualização : a dependência parece ter sido declarada corretamente, o problema provavelmente está no upstream, com o próprio pacote GDAL. Mais detalhes em StackOverflow .
Respostas:
Antes de instalar a ligação python GDAL, você deve instalar o GDAL no seu sistema.
Depois disso, defina variáveis e instale a ligação
A versão do sistema GDAL deve ser superior às ligações da versão.
fonte