Zadałem to pytanie na temat przepełnienia stosu, zanim zdałem sobie sprawę, że ta strona istnieje. Ponieważ ta strona jest bardziej odpowiednia, poproszę ją również tutaj.
Próbuję zainstalować gdal z pipa pip install gdal
w środowisku wirtualnym (Ubuntu). Nie udaje się, ponieważ nie można go znaleźćcpl_port.h
extensions/gdal_wrap.cpp:2853:22: fatal error: cpl_port.h: No such file or directory
compilation terminated
Jednak GDAL jest poprawnie zainstalowany, a plik nagłówka znajduje się w /usr/include/gdal/cpl_port.h
. Czy istnieje jakaś zmienna środowiskowa dla GDAL, którą należy ustawić, aby pip mógł znaleźć pliki nagłówkowe?
python
gdal
ubuntu
installation
Kevin
źródło
źródło
Odpowiedzi:
Odpowiedź selimnairb jest bliska, ale nie będziesz mieć nagłówków, chyba że zainstalowałeś libgdal-dev:
z tym zrobione,
i wtedy
Kompilacja dobiegła końca i mam GDAL w mojej wirtualnej env. Uff!
(edycja 2018) Uwaga: Aby mieć pewność, że zainstalujesz poprawną wersję i unikniesz problemów. pobierz wersję za pomocą
gdal-config --version
. i wtedy:źródło
$ pip install GDAL==10.0
pip install GDAL==1.10.0
.Header Z jakiegoś powodu nie można znaleźć plików nagłówkowych. Być może działasz w środowisku wirtualnym lub z jakiegoś powodu nie ma ich tam, gdzie powinny być. W każdym razie możesz podać katalogi dołączania podczas instalacji gdal przez pip.
pierwsze pobranie gdal pythona:
w późniejszych wersjach pip (> = 9.0.0)
pip install --no-install
nie istnieje:następnie określ, gdzie są nagłówki:
następnie zainstaluj:
w późniejszych wersjach pip (> = 9.0.0)
pip install --no-download
nie istnieje:Oto inny sposób instalacji gdal python:
po tym otwórz IDLE:
i możesz iść!
źródło
gdal-config --libs -> -L/usr/lib -lgdal
pip install --no-install GDAL
się błąd:__main__.gdal_config_error: [Errno 2] No such file or directory
jakiś pomysł?brew install gdal
i użyłem starszej wersji pakietu GDAL Python:pip install --global-option=build_ext --global-option="-L/usr/local/include/gdal/" 'gdal==1.9.1'
Po zapoznaniu się z częścią tej rady otrzymałem instalację Pythona GDAL 1.11.0 (rozwiązanie powinno być niezależne od wersji, patrz poniżej), aby działał na Ubuntu 14.04 z pipem:
Zainstaluj zależności:
zainstaluj pip, przekazując ścieżkę dołączania (przedrostek
sudo
dla instalacji ogólnosystemowej) i instruując pip, aby zainstalował wersję pasującą do zainstalowanej w systemie wersji GDAL:źródło
sudo pip install --no-use-wheel -r python_requirements.txt --global-option=build_ext --global-option="-I/usr/include/gdal"
python_requirements.txt określa starszą wersję gdal. Wątpię, czy to miałoby znaczenie, ale cały zestaw instalacyjny pip zakończył się powodzeniem. U 12,04x64Instalowanie pakietu Python
gdal
w virualenv w systemie LinuxGDAL
zapewnia ładny zestaw narzędzi do operacji związanych z GEO. Jednak instalacja go do virtualenv w systemie Linux nie jest łatwym zadaniem.Ten przepis opisuje, jak to zrobić.
Wymagania
gdal
pakiet Python) w virtualenvMetody instalacji
Istnieje wiele metod instalacji. Jeden wymaga kompilacji i zajmuje kilka minut dłużej.
Drugi używa pakietu kół
pygdal
i jest bardzo szybki. W każdym razie, aby utworzyć pakiet koła, należy go utworzyć raz, a tworzenie i tak obejmuje etap kompilacji.Informacje o
GDAL
pakietach i wersjachGDAL
to ogólna biblioteka oparta na C (++) do obliczeń związanych z GEO.GDAL
narzędzia można zainstalować w całym systemie, co udostępnia biblioteki współdzielone, ale nie instaluje samego pakietu Python.GDAL
występuje w różnych wersjach, a każda dystrybucja Linuksa może domyślnie instalować inną wersję.Pakiet Pythona
gdal
wymaga kompilacji i nie jest trywialny w instalacji w systemach Linux, ponieważ wymaga ustawienia kilku zmiennych środowiskowych. Utrudnia to instalację w virtualenv.Każda
gdal
wersja może zakładać inną wersjęGDAL
i instalacja zakończy się niepowodzeniem, jeśli w systemie nie ma oczekiwanej wersji.Pakiet Python
pygdal
jest alternatywą dlagdal
, która instaluje dokładnie to samo, cogdal
, ale robi to w znacznie bardziej przyjazny dla virtualenv sposób.pygdal
występuje w wersjach odzwierciedlającychGDAL
wersję pokrewną . MającGDAL
wersję 1.10.1 w systemie, należy zainstalowaćpygdal
wersję 1.10.1.Pakiet Python
gdal
(jak równieżpygdal
) korzysta z pakietu root Python o nazwieosgeo
i ma zestaw submodułów, z których jeden jestosgeo.gdal
.W razie potrzeby
GDAL
można zainstalować i używać innych niż domyślne wersji . Jest to poza zakresem tego opisu.Pakiety kół można kompilować krzyżowo, to również nie wchodzi w zakres.
Instalowanie
GDAL
w systemiePonieważ
pygdal
wymagaGDAL
obecności bibliotek współdzielonych, musimy je najpierw zainstalować.Zakładając, że
GDAL
nie jest jeszcze zainstalowany, dzwonieniegdal-config
narzeka i daje ci wskazówkę, jak postępować:Postępuj zgodnie ze wskazówkami i zainstaluj:
Każda dystrybucja może korzystać z innej wersji
GDAL
. Aby dowiedzieć się, którego używamy:Teraz wiesz, że
GDAL
jest zainstalowany, a wersja to 1.10.1 (wersja może się różnić).Zainstaluj
pygdal
z pakietu źródłowego (wymaga kompilacji)Obecnie
pygdal
jest dostępny tylko w pakiecie tar.gz, który zawiera źródła pakietów i wymaga kompilacji.Zakładając, że wersja
GDAL
is1.10.1
i że nasza virtualenv jest już aktywowana:Może to trochę potrwać, ponieważ wymaga numpy, co może również wymagać kompilacji. Poczekaj.
Sprawdź, czy jest zainstalowany:
Od teraz możesz używać pakietu osgeo w swoim kodzie Python, tak jak chcesz, dokładnie tak samo, jakbyś instalował go za pomocą
gdal
pakietu Python.Tworzenie pakietu kół dla
pygdal
Uwaga: pakiety kół muszą być tworzone dla dokładnie tej samej architektury, a mianowicie muszą być zgodne:
W naszym przypadku musi również pasować do wersji
GDAL
zainstalowanej.Poniższe kroki można wykonać w virtualenv lub nie, jak chcesz.
Najpierw upewnij się, że pakiet kół jest zainstalowany:
Zakładając, że masz
GDAL
zainstalowany i ma on wersję 1.10.1:i poczekaj, aż się zakończy.
Następnie znajdziesz podkatalog sterówki, który będzie zawierał paczki z rozszerzeniem `whl`:
Zainstaluj
pygdal
z pakietów kółInstalacja z pakietów sformatowanych z użyciem kół jest znacznie szybsza (sekunda w porównaniu do minut), ponieważ nie wymaga kompilacji.
Zauważ, że katalog z pakietami kół może mieć dowolną nazwę, użyjemy tylko nazwy wheelhouse.
Najpierw aktywuj virtualenv.
Upewnij się, że masz w katalogu sterówki oba wymagane pakiety kół (dla
pygdal
inumpy
).Upewnij się, że
GDAL
jest zainstalowany, a wersja pasuje do wersjipygdal
.Zainstaluj
pygdal
z pakietu kół:-F sterówka wskazuje katalog z plikami whl.
Nie trzeba instalować
numpy
, instaluje się automatycznie.źródło
pygdal
dla zwycięstwa!! pypi : „Przyjazna dla Virtualenv i setuptools wersja standardowych powiązań Pythona GDAL” <3Tak, wydaje się, że przed uruchomieniem PIP wydaje się działać:
eksport CPLUS_INCLUDE_PATH = / usr / include / gdal
eksport C_INCLUDE_PATH = / usr / include / gdal
źródło
Problem z instalacją gdal przez pip jest taki, że pobiera tylko wiązania, a nie całą bibliotekę, więc może być trudny. Jednym ze sposobów rozwiązania tego problemu jest pobranie polecenia pip, ale nie instalacja. Następnie popraw lokalizację nagłówka z pliku konfiguracyjnego. Następnie zainstaluj to. meh
Miałem ten sam problem, ale zdałem sobie sprawę, że napisanie skryptu tekstylnego w celu ponownej kompilacji gdal i wygenerowania powiązań pytona zajmie mniej czasu. Dzięki temu zyskujesz nawet korzyści z filegdb. Śmiało, skorzystaj z treści, którą napisałem, lub dostosuj ją do swoich serc.
źródło
Chwilę później zapewnia to ścieżkę dołączania bez konieczności ratowania instalacji pip: Można ustawić ścieżkę dołączania za pomocą zmiennej środowiskowej.
Zakładając, że nagłówki znajdują się w / usr / include / gdal, wydaj an
export CPLUS_INCLUDE_PATH=/usr/include/gdal
przed uruchomieniem pip.
źródło
/usr/include/gdal
Po szukaniu rozwiązania w prawo i w lewo, oto coś, co działa dla mnie na Ubuntu 14.04, nawet z poziomu virtualenv bez dostępu do pakietów systemowych:
Zainstaluj zależności:
Ustaw flagi kompilatora:
Zainstaluj wersję odpowiadającą bibliotekom systemowym (w momencie pisania Ubuntu Trusty używa nagłówków 1.10):
źródło
Teraz możesz używać przyjaznej dla virtualenv i setuptools wersji standardowych powiązań pythonowych GDAL pygdal .
źródło
Miałem podobne problemy na komputerze Mac. Oto jak to rozwiązałem:
Po pierwsze, skonfigurowałem wirtualne środowisko Python 2.7 za pomocą virtualenv. Dystrybucja Pythona została zainstalowana w katalogu o nazwie „env”.
Następnie użyłem Fink, aby zainstalować gdal
Zainstalowałem również gdal-dev, ale może nie było to wymagane, ponieważ mogło być już zainstalowane z gdal.
Sprawdziłem zainstalowaną wersję za pomocą:
W mojej instalacji wygenerował wynik 1.11.1
Instalacja fink gdal zainstalowała plik nagłówka cpl_port.h w / sw / include / gdal1. Sprawdź własną instalację. Następnie wprowadziłem:
Wydawało się, że to działa, ale nie przetestowałem jeszcze instalacji.
źródło
Na Fedorze 24, która ma GDAL 2.0.2 w swoich repozytoriach, musiałem zainstalować pakiet Python w następujący sposób:
źródło
Otrzymałem podobny błąd podczas próby instalacji powiązań GDAL Pythona na komputerze Mac (OS 10.10.5). Zainstalowałem podstawowe oprogramowanie GDAL ze strony http://www.kyngchaos.com/software/frameworks, pobierając plik „Complete”. Musiałem ustawić trzy zmienne środowiskowe.
eksport C_INCLUDE_PATH = / Library / Frameworks / GDAL.framework / Headers export CPLUS_INCLUDE_PATH = / Library / Frameworks / GDAL.framework / Headers export LIBRARY_PATH = / Library / Frameworks / GDAL.framework / Versions / Current / unix / lib
Ostatnim elementem było dodanie /Library/Frameworks/GDAL.framework/Programs do mojej ŚCIEŻKI.
echo 'export PATH = / Library / Frameworks / GDAL.framework / Programs: $ PATH' >> ~ / .bash_profile
Po tym pip mógł zainstalować GDAL dla Pythona. Mam nadzieję że to pomoże.
źródło
Te pakiety gdal 0.10.1 działają dobrze dla Ubuntu 12.04: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+sourcepub/4353415/+listing-archive-extra
Pakiety gdal 0.10.1 dla innej wersji ubuntu: https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-unstable/+packages?field.name_filter=gdal&field.status_filter=published&field.series_filter=
źródło
gdal 1.10.1
i właśnie zrobiłem następującepip install --global-option=build_ext --global-option="-I/usr/include/gdal" gdal==1.10.0
Aby odpowiedzieć na konkretny aspekt pytania virtualenv:
Uwaga,
pygdal
może wymagać innej wersji GDAL, w porównaniu z tym, czegoGDAL
wymaga pakiet powiązań Pythona.Poniżej znajduje się to, co otrzymałem w najnowszych wersjach Fedory (20 i 23).
źródło
Instalowanie za pomocą Pip z pojedynczym poleceniem
Zakładając, że pakiet programistyczny GDAL jest zainstalowany i wersje plików nagłówkowych są poprawne, jedyne polecenie potrzebne do zainstalowania GDAL z repozytoriów PyPI jest następujące:
To oczywiście zakłada lokalizację plików nagłówkowych
/usr/include/gdal
.Zainstaluj aktualny GDAL
Aby zainstalować GDAL za pomocą powyższej komendy pip, wersja plików nagłówkowych musi być podobna do wersji, którą pip wykona. GDAL ma zaktualizowane odniesienie binarne na stronie : https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries .
Jak zainstalować na OpenSUSE
Po powyższym linku znajduje się adres URL umieszczony dalej w dół do aktualnego zestawu pakietów GIS dla OpenSUSE 42.1 http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1/Aplikacja: Geo.repo
Zastąp odpowiednim pakietem. A jeśli nie używasz
zypper
, jest więcej informacji na https://trac.osgeo.org/gdal/wiki/DownloadingGdalBinariesźródło
Miałem ten sam problem w systemie Windows 10. Po kilku eksperymentach przyszedłem z tym rozwiązaniem.
PYTHONPATH=c:\python36
PATH=C:\python36\Scripts\;C:\python36\;%PATH%
pip install *.whl
(* .whl z kroku 2)źródło
Jeśli korzystasz z Dockera, otwieramy nasz kontener, co upraszcza korzystanie z GDAL i Pythona 3. Kontener przechwytuje kroki opisane powyżej, abyś mógł szybko używać GDAL z twoimi aplikacjami.
thinkwhere / gdal-python
źródło
Jeśli korzystasz z dystrybucji opartej na Debianie, biblioteki Pythona GDAL są dostępne za pośrednictwem menedżera pakietów i można je po prostu zainstalować za pomocą
sudo apt install python-gdal
lubsudo apt install python3-gdal
źródło
Na Ubuntu 16.04 z condą w kontenerze dokera (stos jupyter)
źródło
W Ubuntu, prostsze rozwiązanie do zainstalowania najnowszej gdal dla python3: instaluj pliki bibliotek przez
libgdal-dev
i otoki Pythona przezpython-gdal
dla python2:
źródło
Możesz również napotkać problem z użyciem pamięci.
Po uruchomieniu
pip install gdal==2.2.3
gcc uruchamia się, aby coś skompilować i zwiększa zużycie pamięci.Jeśli nie masz wystarczającej ilości pamięci, kompilator nie powiedzie się z komunikatem typu
Aby to naprawić, musisz dodać więcej pamięci RAM lub zwolnić trochę.
źródło
To podejście zadziałało dla mnie:
Lub jako część Dockerfile:
źródło
Jeśli używasz Travis CI i potrzebujesz najnowszej wersji GDAL dla Pythona, oto przykład tego, jak wyglądałaby część
.travis.yml
pliku:źródło