Verknüpfen Sie QGIS mit Anaconda Python Distribution: Spyder, iPython Notebook, Pip, Scikit-Learn


20

Ich habe Anaconda als meine primäre Python-Distribution und möchte Python-bezogene QGIS-Skripte durch diese weiterleiten. Mit Anaconda habe ich Spyder, kann problemlos Pakete mit pip installieren und einen iPython Notebook-Webbrowser für Bildschirmfreigaben und das Speichern von Code starten, den ich für meine Daten vor, während und nach Manipulationen in QGIS ausführen möchte Pakete wie scikit-learn).

Ich kann nirgendwo etwas Nützliches finden, um die beiden zu verbinden.

Ich verwende Windows 8.1, aber wenn dies nur unter Linux möglich ist, kann ich versuchen, es auf meinem Desktop einzurichten, auf dem Mint 13 ausgeführt wird. Ich brauche nur eine Webcam und ein Mikrofon, die sich auf meinem Laptop befinden, aber nicht Desktop im Moment für eine interaktive Demo und ein Interview am Dienstag.


2
Wenn Sie unter Windows OSGeo4W für Ihr Installationsprogramm verwenden, müssen Sie die Python-Installation fortsetzen, mit der QGIS verknüpft ist, um die interne Python-Interpreter-Instanz zu erstellen. Sie können andere Python-Distributionen verwenden, aber Sie müssten QGIS selbst aus dem Quellcode kompilieren. Dies bedeutet auch, dass alle Abhängigkeiten, wie Python C-kompilierte Module (QScintilla usw.), auch für diese Python-Installation erstellt werden müssen. Mit anderen Worten, es kann schwierig sein, mit OSGeo4W aus dem Quellcode Abhängigkeiten zu ermitteln und gleichzeitig ein anderes Python als OSGeo4W zu verwenden.
dakcarto

was meinst du mit "wie man die beiden verbindet"? Der Datenaustausch mit QGIS erfordert keine enge Python-Integration. Es wäre nützlich, QGIS in anaconda env zu haben, aber es ist überhaupt nicht einfach, alle Anaconda-Python-Abhängigkeiten in OSGeo4W env festzulegen.
Luigi Pirelli

Dies ist eine sehr relevante Frage für QGIS unter Windows. Die Python - Distribution mit OSGeo4W enthalten hat viele veraltete Module (zB numpy, scipy) und es gibt eine Reihe von Modulen , die Zusammenstellung erfordern und / oder die Verknüpfung (netCDF4, rasterio) , die pipnicht tun können - aber condakann. Anaconda hat Rezepte zum Bauen gdalund viele andere Dinge, also frage ich mich, wie viele QGIS-Abhängigkeiten von Anaconda nicht bereitgestellt werden können.
j08lue

Unter Linux kann es hilfreich sein, Anaconda Python als Standard-Python festzulegen ( export PATH="/path/to/anaconda/bin:$PATH")? Oder ist es /usr/bin/pythonin QGIS fest codiert?
j08lue

Antworten:


3

Unter Windows ist es derzeit die beste Option, die Python-Distribution zu verwenden, die über OSGeo4W installiert und auch pipüber das OSGeo4W-Installationsprogramm installiert werden kann.

Während pipnicht viele Pakete installieren, die auf externe Bibliotheken Verknüpfung erfordern (zB netCDF oder GEOS) direkt aus dem Paket - Index, ist eine Abhilfe dieser inoffiziellen vorkompilierte Binaries von installieren http://www.lfd.uci.edu/~gohlke/ pythonlibs / und installieren Sie sie in der OSGeo4W-Shell durch pip install path-to-downloaded-binary.whl.

[Edit 2018] Nun gibt es auch die Möglichkeit, QGIS über (Ana) conda zu installieren:

conda install -c conda-forge qgis

2

Dies kann in Conda-Umgebungen erfolgen. Sie würden eine Umgebung mit einer passenden Python-Version für die QGIS-Installation erstellen (Sie müssen sicherstellen, dass sowohl Ihre Anaconda-Installation als auch Ihre QGIS-Architektur dieselbe sind). Anschließend müssen Sie die relevanten Pfade zu Ihrem Umgebungssystempfad und Ihrem Python-Pfad hinzufügen. Es gibt verschiedene Pfade, die qgis beim Start dem Systempfad voranstellt, und Sie können sie alle über das Menü qgis options iirc anzeigen. Informationen zum Hinzufügen von Pfaden zu einer Conda-Umgebung finden Sie hier: http://conda.pydata.org/docs/using/envs.html#windows . Wenn Sie die Umgebung aktivieren, werden alle relevanten Pfade hinzugefügt und Sie sollten in der Lage sein, qgis libs zu importieren.

Damit können Sie Anaconda nicht über QGIS verwenden, aber Sie können Ihre QGIS-Skripte usw. über Anaconda verwenden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.