Installieren von GDAL mit Python unter Windows?

92

Kann mir jemand erklären, wie man GDAL / OGR mit Python unter Windows installiert?

Ich habe Windows Vista und ich habe versucht, den Informationen auf der Website zu folgen. Die exe-Dateien scheinen für mich nicht bindend zu sein.

Kann jemand den Vorgang beschreiben, einschließlich Links zu den Dateien / Ordnern, die ich benötige?

Ich habe jetzt versucht, das GDAL-Setup mit MinGW auszuführen, aber dies ist auch fehlgeschlagen:

GDAL_FAIL

GuidoS
quelle

Antworten:

63

Sofern Sie keine triftigen Gründe haben, würde ich auf jeden Fall empfehlen, mit dem OSGeo4W-Installationsprogramm zu beginnen, mit dem mehrere verschiedene Versionen von GDAL und den entsprechenden Python-Bindungen installiert werden können. Es funktioniert hervorragend und vereinfacht die Windows-Bereitstellungsgeschichte erheblich. Insbesondere möchten Sie pkg-gdal-python installieren , das sich in 'Libs' im Installationsbaum befindet.

scw
quelle
8
Also habe ich das OSGeo4W-Installationsprogramm verwendet, um gdal zu installieren, und dann die kleine Befehlszeilenschnittstelle ausprobiert. In Python war ich jedoch immer noch nicht in der Lage, Folgendes zu tun: import gdal
GuidoS
7
OSGEO4W installiert eine eigene Python-Instanz unter dem OSGEO4W-Stammverzeichnis. Um Python zu verwenden, das gdal und alle anderen OSGEO-Module enthält, öffnen Sie die OSGEO4W-Shell start> program files> osgeo4w. Starten Sie Python oder führen Sie von dort aus ein Python-Skript aus.
DavidF
8
Versuchen Siefrom osgeo import gdal
DavidF
3
@scw überlege bitte, die Beispiele aus den Kommentaren in deine Antwort aufzunehmen. Dadurch wird es einfacher, die relevanten Informationen zu einem zusammenhängenden Ganzen zusammenzufügen (teilweise, weil die Code-Formatierung beibehalten werden kann). Stimmen Sie die Kommentare ab, mit denen Sie die Quelle gutschreiben und bestätigen.
Matt Wilkie
6
Gibt es eine Möglichkeit, "from osgeo import gdal" von meiner Haupt-Python-Shell aus zu verwenden, anstatt die OSGEO-Shell zu verwenden?
Alexis Eggermont
58

Sie können das GDAL-Wheel-Paket von Christoph Gohlkes inoffiziellen Windows-Binärdateien für Python-Erweiterungspakete herunterladen .

Es kann von cmd.exe mit etwas wie installiert werden:

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

(Sie sollten NumPy mit einem ähnlichen Befehl vom selben Ort aus installieren. )

Obwohl das Paket nicht von OSGeo- oder GDAL-Entwicklern erstellt wurde, handelt es sich um eine qualitativ hochwertige Distribution mit Unterstützung für die neuesten Versionen von GDAL, die für 32-Bit- und 64-Bit-Versionen von Python kompiliert wurden. Es müssen keine externen Bibliotheken hinzugefügt oder verwaltet werden!

Update it setzt sogar die GDAL_DATAUmgebungsvariable, falls diese nicht gesetzt ist, und enthält einen PostgreSQLTreiber zum Lesen von Daten aus PostGIS.

Mike T
quelle
2
+1 Ich habe festgestellt, dass diese Seite eine unschätzbare Quelle für Python-Distributionen für 64-Bit-Windows ist
geographika
1
Ich habe Probleme mit diesem Installationsprogramm, da es meine Python-Installationen nicht erkennt. Ich habe Python26 und Python27 installiert, C:/Python2Xaber es kann es nicht finden ... egal! Wählen Sie 64-Bit anstelle von 32 ....
djq
Dies funktionierte für mich viel einfacher als die akzeptierte Antwort, da ich keine weitere Installation von Python und Numpy möchte.
Ahmed Fasih
Diese Zeilen sind jetzt in der Installation enthalten.
Barbarossa
danke @Barbarossa, ich habe diese Antwort aktualisiert, um den aktuellen Status des Pakets widerzuspiegeln.
Mike T
15

Eine andere Option ist die Installation der Anaconda Python-Distribution, die Pakete für GDAL enthält. Wenn Sie viel Arbeit mit GDAL in Verbindung mit anderen Python-Paketen (scipy, pandas, scikit-learn usw.) erledigen, ist dies möglicherweise eine bessere Option als OSGeo4W. Andererseits, wenn Sie Python in Kombination mit einer Reihe von Open-Source-Fernerkundungs- und GIS-Paketen (GRASS, QGIS usw.) verwenden möchten, ist OSGeo4W wahrscheinlich die bessere Option.

Die vollständige Anaconda-Distribution finden Sie unter: https://www.continuum.io/downloads. Sie enthält eine Reihe von Python-Paketen für 'Data Science' oder eine Minimalinstallation unter http://conda.pydata.org/miniconda. html

Im Rahmen der Installation werden Sie aufgefordert, den Hauptpfad hinzuzufügen (er ist also von jedem Terminal aus verfügbar).

Einmal eingerichtet, kann GDAL in einer neuen Umgebung installiert werden:

conda create -n gdal_env -c conda-forge gdal

Aktivieren Sie es dann als show, wenn der Befehl beendet ist. Die Installation in einer neuen Umgebung wird empfohlen, um Konflikte mit anderen Paketen zu vermeiden und sicherzustellen, dass die erforderlichen Umgebungsvariablen festgelegt sind.

Ich habe die Installation über den Conda-Forge-Kanal ( https://conda-forge.github.io/ ) vorgeschlagen, da diese sehr aktiv daran arbeiten, ihre GDAL-Builds auf dem neuesten Stand zu halten und sicherzustellen, dass sie gegen viele Bibliotheken funktionieren.

Einmal installierte Pakete können aus der Umgebung heraus aktualisiert werden:

conda update gdal
danclewley
quelle
1
Dies ist definitiv die einfachste Methode, besonders wenn Sie andere komplexe Python-Pakete installieren möchten (z. B. Scikit-Learn, Numpy)
bgordon
1
Das ist toll! Besonders schön b / c kann man es sowohl über die Kommandozeile als auch über Python ausführen.
mmann1123
Sie können es auch installieren, indem Sie unter "Umgebungen" die Umgebung auswählen, die Sie verwenden möchten. Dann suchen Sie "gdal" in "Alle" der Pakete
Goncalo Peres
9

Ich finde OSGEO4W eine schlechte Lösung, weil es ein ganzes paralleles Universum erzeugt, fast wie eine virtuelle Maschine. Ich konnte GDAL installieren und in Python verwenden, indem ich die hier beschriebenen Schritte ausführte (dies ist der Link, der von @ sys49152 bereitgestellt wird).

Es schickt Sie zu gisinternals.com. Über den Link zu "Stable Releases" gelangen Sie zu: http://www.gisinternals.com/release.php

Jetzt müssen Sie zwischen 32 und 64 Bit und verschiedenen Versionen des Microsoft Visual C ++ - Compilers wählen. Beachten Sie, dass dies Ihrer Python-Version und nicht Ihrem Betriebssystem entsprechen muss. In meinem Fall habe ich ein 64-Bit-Fenster, aber ein 32-Bit-Python 2.7 (das mit ArcGIS geliefert wurde).

Um zu sehen, was Sie haben, können Sie Python in der Befehlszeile ausführen und eine Nachricht wie diese:

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.
>>>

Also muss ich "release-1500" verwenden

Ich wählte: MSVC 2013/win32 release-1500-gdal-1-11-3-mapserver-6-4-2

(Die Build-Versionsnummern ändern sich mit der Zeit.)

Ich habe zuerst das "Generische Installationsprogramm für die GDAL-Kernkomponenten" heruntergeladen und installiert: gdal-111-1500-core.msi

Und fügte den Pfad und andere Variablen wie hier beschrieben hinzu .

Zum Pfad C:\Program Files (x86)\GDAL hinzufügen : Umgebungsvariablen erstellen: GDAL_DATA = C:\Program Files (x86)\GDAL\gdal-data GDAL_DRIVER_PATH = C:\Program Files (x86)\GDAL\gdalplugins

Dann habe ich das Python-Modul für Python 2.7 heruntergeladen und installiert GDAL-1.11.3.win32-py2.7.msi

Und danach war ich in der Lage, in Python zu tun

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

usw.

RobertH
quelle
Schritt für Schritt schön dokumentiert. Danke.
Cotton.Rockwood
6

Ich weiß, dass das OSGEO-Installationsprogramm erwähnt wurde, aber wie GuidoS sagte, funktioniert es nur, wenn Sie sich in der osgeow-Shell befinden. Das ist in Ordnung, wenn Sie nur einfache Pythons verwenden. Wenn dies nicht der Fall ist, müssen Sie entweder das Paket neu installieren und dann Ihre App / Ihr Plugin aus diesem Ordner ausführen oder alle Abhängigkeiten für gdal kompilieren und erneut installieren.

Was für mich funktioniert ist:

  • In PyDev / Eclipse (nicht meine primäre IDE) füge ich die Liste der Bibliotheken dem Standard-Python-Interpreter hinzu
  • Verwenden Sie die integrierte Konsole, um die Dateien auszuführen
dassouki
quelle
3
Sie können o4w python als Systemstandard-Python festlegen, z. B. für alle verfügbar machen, indem Sie es zur Systemregistrierung hinzufügen. Unter trac.osgeo.org/osgeo4w/ticket/114 steht ein Python-Skript für 32-Bit-Fenster zur Verfügung (64-Bit müssen von Hand hinzugefügt werden).
Matt Wilkie
5

Es ist wirklich nicht so schwer zu tun. Ich habe es viele Male kompiliert, bevor ich Visual Studio ohne Probleme verwendet habe. Folgen Sie einfach den Anweisungen hier: Link-Text .

Es ist ziemlich einfach, lesen Sie einfach die gut dokumentierte Datei makefile.vc und legen Sie die entsprechenden Verzeichnisse fest, insbesondere das Python-Verzeichnis. Sobald es erstellt ist, sollten Sie ein Python-Modul erstellen lassen, das Sie dann in Ihre Python-Installation kopieren können, was ich immer maual getan habe, aber es gibt wahrscheinlich eine angemessenere Methode.

Leigh MacDonald
quelle
5

Die beiden Top-Antworten von @SCW und @Mike Toews sind großartig. Die von Mike aufgeführte Site ist für inoffizielle Binärdateien gedacht - was sehr nützlich war, als 64-Bit-GDAL nicht sofort verfügbar war (als er seine Antwort schrieb), aber es ist schon einige Zeit her. Ich habe diese alternative Antwort hier hinzugefügt, da sie, obwohl ich sie oft erwähnt habe, immer noch auftaucht und dieses Wiki möglicherweise ein besserer Ort ist, um sie zu platzieren.

Wenn Sie nur die GDAL-Binärdateien für Python auf einem Windows-Computer installieren möchten, erhalten Sie die Installationsprogramme von der ausgezeichneten GIS-Internalsite . Diese Seite ist von der offiziellen GDAL / OGR-Binaries- Seite verlinkt . Auf diese Weise können Sie über eine normale Python-Installation auf GDAL zugreifen, ohne die osgeow-Shell verwenden zu müssen. Die Binärdateien hier werden regelmäßig gewartet und mit einer Vielzahl von Versionen von Visual Studio kompiliert (wählen Sie also abhängig von den installierten Laufzeiten aus).

MappaGnosis
quelle
Es ist überhaupt kein Problem, mehrere MSVC-Laufzeiten auf demselben Computer zu installieren. Wenn Sie spezielle Treiber wie ECW und MrSid benötigen, beachten Sie, dass auf den verschiedenen MSVC-Plattformen unterschiedliche Opportunities kompiliert sind. Folgen Sie einfach dem informationLink und sehen Sie die Unterschiede.
AndreJ
2

Ich benutze FWTools in Windows XP. Es enthält eine Python-Installation mit den GDAL-Bibliotheken. Führen Sie nach der Installation einfach Ihre Python-Skripte in der FWTools-Shell aus .

Jaime Soto
quelle
1
FWTools war zu dieser Zeit ein gutes Tool, hat aber seitdem keine Updates erhalten. Ich schlage vor, zu Gisinternlas zu wechseln, das immer noch aktiv gewartet wird.
AndreJ
0

Ich habe es erst gestern nach diesem Tutorial http://www.gis.usu.edu/~chrisg/python/2009/docs/gdal_win.pdf Es mir fein gearbeitet.

Jorge Vidinha
quelle
1
Bitte fassen Sie das Hauptkonzept hier zusammen, da diese Antwort sonst möglicherweise unbrauchbar wird, wenn die Verknüpfungen unterbrochen werden.
Underdunkel