Instalujesz GDAL z Pythonem w systemie Windows?

92

Czy ktoś może wyjaśnić, jak zainstalować GDAL / OGR za pomocą Pythona w systemie Windows?

Mam system Windows Vista i próbowałem postępować zgodnie z informacjami na stronie internetowej i wydaje mi się, że nie wiążą one one plików exe.

Czy ktoś może opisać proces, w tym linki do plików / folderów, których potrzebuję?

Próbowałem teraz uruchomić instalację gdal z minGW, ale to również nie powiodło się:

GDAL_FAIL

GuidoS
źródło

Odpowiedzi:

63

Jeśli nie masz dobrych powodów, by tego nie robić , zdecydowanie polecam zacząć od instalatora OSGeo4W , który może instalować wiele różnych wersji GDAL i odpowiednich powiązań Pythona. Działa świetnie i znacznie upraszcza historię wdrażania systemu Windows. W szczególności będziesz chciał zainstalować pkg-gdal-python , który znajduje się w „Libs” w drzewie instalatora.

scw
źródło
8
Więc użyłem instalatora OSGeo4W, aby zainstalować gdal, a następnie wypróbowałem ich mały interfejs wiersza poleceń, ale nadal nie byłem w stanie w Pythonie wykonać następujących czynności: import gdal
GuidoS
7
OSGEO4W instaluje własną instancję Pythona w katalogu głównym OSGEO4W. Aby użyć Pythona zawierającego gdal i wszystkie pozostałe moduły OSGEO, otwórz start powłoki OSGEO4W> pliki programów> osgeo4w. Uruchom Python lub stamtąd uruchom skrypt Python.
DavidF
8
Spróbujfrom osgeo import gdal
DavidF
3
@scw, proszę rozważyć zebranie przykładów z komentarzy w odpowiedzi. Ułatwi to połączenie odpowiednich informacji w spójną całość (częściowo ze względu na możliwość zachowania formatowania kodu). Głosuj komentarze, których używasz jako źródła uznania i potwierdzenia źródła.
matt wilkie 12.10.10
6
Czy istnieje sposób na użycie „from osgeo import gdal” z mojej głównej powłoki Pythona zamiast używania powłoki OSGEO?
Alexis Eggermont,
58

Możesz pobrać pakiet kół GDAL z nieoficjalnych plików binarnych Windows Christopha Gohlke dla pakietów rozszerzeń Python .

Można go zainstalować z cmd.exe za pomocą czegoś takiego:

c:\Python27\Scripts\pip.exe install GDAL-X.Y.Z-cp27-none-win_XYZ.whl

(Powinieneś zainstalować NumPy z tego samego miejsca za pomocą podobnego polecenia)

Chociaż pakiet nie został zbudowany przez programistów OSGeo lub GDAL, jest to wysokiej jakości dystrybucja z obsługą najnowszych wersji GDAL skompilowanych dla 32-bitowych i 64-bitowych wersji Pythona. Żadnych bibliotek zewnętrznych nie trzeba dodawać ani nimi zarządzać!

Aktualizacja powoduje nawet ustawienie GDAL_DATAzmiennej środowiskowej, jeśli nie jest ustawiona, i zawiera PostgreSQLsterownik do odczytu danych z PostGIS.

Mike T.
źródło
2
+1 Znalazłem tę stronę nieocenionym źródłem dystrybucji Pythona dla 64-bitowego systemu Windows
geographika
1
Mam problem z działaniem tego instalatora, ponieważ nie wykrywa on instalacji Pythona. Mam zainstalowane Python26 i Python27, C:/Python2Xale nie mogę go znaleźć ... nieważne! Wybierz 64 bity zamiast 32 ....
djq
To działało dla mnie znacznie łatwiej niż zaakceptowana odpowiedź, ponieważ nie chcę kolejnej instalacji Pythona i Numpy.
Ahmed Fasih
Linie te są teraz dołączone do instalacji.
Barbarossa
dzięki @Barbarossa, zaktualizowałem tę odpowiedź, aby odzwierciedlić aktualny status pakietu.
Mike T
15

Inną opcją jest zainstalowanie dystrybucji Anaconda Python, która zawiera pakiety dla GDAL. Jeśli zamierzasz dużo pracować przy użyciu GDAL z innymi pakietami Python (scipy, pandy, scikit-learn itp.), Może to być lepsza opcja niż OSGeo4W. Z drugiej strony, jeśli chcesz używać Pythona w połączeniu z wieloma pakietami teledetekcji Open Source i pakietami GIS (GRASS, QGIS itp.), OSGeo4W jest prawdopodobnie lepszą opcją.

Możesz uzyskać pełną dystrybucję Anaconda ze strony: https://www.continuum.io/downloads, która zawiera wiele pakietów Pythona mających na celu „naukę danych” lub minimalną instalację z http://conda.pydata.org/miniconda. HTML

W ramach instalacji poprosi Cię o dodanie do głównej ścieżki (aby była dostępna z dowolnego terminala).

Po skonfigurowaniu GDAL można zainstalować w nowym środowisku za pomocą:

conda create -n gdal_env -c conda-forge gdal

Następnie aktywuj go jako pokaz po zakończeniu polecenia. Zaleca się instalację w nowym środowisku, aby uniknąć konfliktów z innymi pakietami i upewnić się, że wymagane zmienne środowiskowe są ustawione.

Zasugerowałem instalację z kanału conda-forge ( https://conda-forge.github.io/ ), ponieważ są bardzo aktywni w aktualizowaniu swoich kompilacji GDAL i upewniają się, że działają z wieloma bibliotekami.

Raz zainstalowane pakiety mogą być aktualizowane z poziomu środowiska za pomocą:

conda update gdal
danclewley
źródło
1
Jest to zdecydowanie najłatwiejsza metoda, szczególnie jeśli planujesz instalować inne złożone pakiety Pythona (np. Scikit-learn, numpy)
bgordon
1
To jest świetne! Szczególnie fajne b / c można uruchomić za pomocą wiersza poleceń, a także przez python.
mmann1123
Można go również zainstalować, przechodząc do „Środowiska” i wybierając środowisko, z którego chce się korzystać. Następnie wyszukaj „gdal” w „Wszystkie” paczek
Goncalo Peres
9

Uważam OSGEO4W za kiepskie rozwiązanie, ponieważ tworzy cały równoległy wszechświat, prawie jak maszyna wirtualna. Byłem w stanie zainstalować GDAL i używać go w Pythonie, wykonując kroki opisane tutaj (jest to link podany przez @ sys49152).

Wysyła cię do gisinternals.com. Link do „stabilnych wersji”, aby przejść do: http://www.gisinternals.com/release.php

Teraz musisz wybrać pomiędzy 32 a 64 bitami i różnymi wersjami kompilatora Microsoft Visual C ++. Pamiętaj, że musi to być zgodne z wersją Pythona, a nie z systemem operacyjnym. W moim przypadku mam 64-bitowy system Windows, ale 32-bitowy python 2.7 (dostarczany z ArcGIS).

Aby zobaczyć, co masz, możesz uruchomić python w wierszu polecenia i wyświetlić następujący komunikat:

C:\>python
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Więc muszę użyć „release-1500”

Wybrałem: MSVC 2013/win32 release-1500-gdal-1-11-3-mapserver-6-4-2

(numery wersji kompilacji zmieniają się z czasem)

Najpierw pobrałem i zainstalowałem „Generyczny instalator podstawowych komponentów GDAL”: gdal-111-1500-core.msi

I dodał ścieżkę i inne zmienne, jak opisano tutaj .

Dodaj do ścieżki: C:\Program Files (x86)\GDAL Utwórz zmienne środowiskowe: GDAL_DATA = C:\Program Files (x86)\GDAL\gdal-data GDAL_DRIVER_PATH = C:\Program Files (x86)\GDAL\gdalplugins

Następnie pobrałem i zainstalowałem moduł python dla python 2.7 GDAL-1.11.3.win32-py2.7.msi

A potem w Pythonie byłem w stanie to zrobić

from osgeo import gdal
ds = gdal.Open('file.tif')

itp.

RobertH
źródło
Ładnie udokumentowane krok po kroku. Dziękuję Ci.
Cotton.Rockwood,
6

Wiem, że wspomniano o instalatorze OSGEO, ale jak powiedział GuidoS, nie działa, dopóki nie używasz powłoki osgeow, co jest w porządku i eleganckie, jeśli wszystko, co robisz, to podstawowy python. Możliwe, że jeśli nie, musisz ponownie zainstalować pakiet, a następnie uruchomić aplikację / wtyczkę z tego folderu lub skompilować wszystkie zależności gdal i zainstalować ją ponownie.

Dla mnie działa:

  • W PyDev / Eclipse (nie moim podstawowym IDE) dodaję listę bibliotek do domyślnego interpretera Pythona
  • Użyj wbudowanej konsoli, aby uruchomić pliki
dassouki
źródło
3
Możesz ustawić o4w python jako domyślny python systemu, np. Udostępnić go wszystkim, dodając go do rejestru systemowego. Istnieje skrypt Pythona do robienia tego w 32-bitowych oknach na trac.osgeo.org/osgeo4w/ticket/114 (64-bitowe należy dodać ręcznie).
matt wilkie
5

To naprawdę nie jest takie trudne. Kompilowałem go wiele razy, zanim użyłem Visual Studio bez żadnych problemów. Wystarczy postępować zgodnie ze wskazówkami tutaj: link tekst .

Jest to dość proste, wystarczy przeczytać dobrze udokumentowany plik makefile.vc i ustawić odpowiednie katalogi, w szczególności Python. Po jego zbudowaniu powinieneś mieć wbudowany moduł Pythona, który możesz następnie skopiować do instalacji Pythona, co zawsze robiłem samodzielnie, ale prawdopodobnie istnieje bardziej odpowiednia metoda.

Leigh MacDonald
źródło
5

Dwie najlepsze odpowiedzi @SCW i @Mike Toews są świetne. Witryna wymieniona przez Mike'a jest przeznaczona do nieoficjalnych plików binarnych - co było bardzo przydatne, gdy 64-bitowy GDAL nie był łatwo dostępny (jak na czas, kiedy napisał swoją odpowiedź), ale jest już od jakiegoś czasu. Dodałem tutaj tę alternatywną odpowiedź, ponieważ chociaż wspominałem o niej wiele razy, wciąż się pojawia i ta wiki może być lepszym miejscem do jej umieszczenia.

Jeśli chcesz zainstalować tylko pliki binarne GDAL dla Pythona na komputerze z systemem Windows, dostałbym instalatory z doskonałej witryny GIS Internals . Ta strona jest połączona z oficjalnej strony plików binarnych GDAL / OGR . Daje to dostęp do GDAL poprzez normalną instalację Pythona bez potrzeby używania powłoki osgeow. Pliki binarne tutaj są regularnie utrzymywane i kompilowane z różnymi wersjami Visual Studio (więc wybierz w zależności od zainstalowanych środowisk uruchomieniowych).

MappaGnosis
źródło
Nie ma żadnego problemu z zainstalowaniem kilku środowisk uruchomieniowych MSVC na tym samym komputerze. Jeśli potrzebujesz specjalnych sterowników, takich jak ECW i MrSid, zauważ, że istnieją różne możliwości skompilowane w ramach różnych platform MSVC. Wystarczy informationkliknąć link i zobaczyć różnice.
AndreJ
2

Używam FWTools w Windows XP. Obejmuje instalację Pythona z bibliotekami GDAL. Po instalacji uruchom skrypty Pythona z powłoki FWTools .

Jaime Soto
źródło
1
FWTools było wówczas dobrym narzędziem, ale od tego czasu nie ma żadnych aktualizacji. Sugeruję przejście na gisinternlas, który jest nadal aktywnie utrzymywany.
AndreJ