Dodanie GDAL jako zależności do pakietu Python?


9

Próbuję spakować skrypt w języku Python, który używa GDAL dla PyPI. Zacząłem od włączenia bezpośredniego odwołania do mojego setup.py:

install_requires=['GDAL==1.11.2'],

W ten sposób nie udało się zainstalować pakietu w moim testowym środowisku wirtualnym:

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

Następnie spróbowałem z odniesieniem do pygdal, ponieważ jest oznaczony jako wersja przyjazna dla virtualenv:

install_requires=['pygdal'],

W ten sposób instalacja kończy się bez błędów (ale przy zwykłym obciążeniu ostrzeżeniami kompilacji). Kiedy jednak wywołuję skrypt, otrzymuję ten błąd z powrotem:

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

Jaki jest prawidłowy sposób ustawienia GDAL jako zależności?

Aktualizacja : Wydaje się, że zależność jest poprawnie zadeklarowana, problem jest prawdopodobnie związany z samym pakietem GDAL. Dalsze szczegóły w StackOverflow .


5
Twierdziłbym, że czyste pytanie Pythona dotyczące gdal jest tutaj ważne.
John Powell,

2
Ciekawe, jak recenzenci wydają się tak pewni, że jest to pytanie ściśle Python, ale jak dotąd powstrzymali się od wskazania, co to jest.
Luís de Sousa

6
To pytanie pythonowe i GDAL i myślę na ten temat
Ian Turton


1
@EvilGenius Zwykle odmawiam zamieszczania postów, ale w tym przypadku mogę wyrazić zgodę, ponieważ pierwotne głosowanie w tej sprawie w toku głosowania wskazało, że jest to właściwy sposób postępowania.
PolyGeo

Odpowiedzi:


3

Przed zainstalowaniem wiązania GDAL w Pythonie, musisz zainstalować GDAL w swoim systemie.

apt-get install -y libgdal-dev

Następnie ustaw zmienne i zainstaluj powiązanie

CPLUS_INCLUDE_PATH=/usr/include/gdal \
C_INCLUDE_PATH=/usr/include/gdal \
pip install GDAL

Wersja systemu GDAL powinna być wyższa niż powiązania wersji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.