Wie installiere ich Python-Bibliotheken von Drittanbietern für QGIS unter Windows?


18

Wie kann ich Bibliotheken von Drittanbietern für QGIS-Plugins unter Windows verwenden? Ich habe ein Plugin entwickelt, das Rasterio und Numpy für einen Kunden verwendet, aber er hat Probleme, Rasterio und Numpy zu installieren.

Eigentlich waren Rasterio und Numpy auf dem Hauptsystem Python (C: \ Python27) installiert, aber ich brauche QGIS Python, um es zu erkennen.

Wie geht das?

Antworten:


23

QGIS, wie es von OSGeo4W vertrieben wird, wird normalerweise mit einer eigenen Python-Installation und eigenen Paketen geliefert, die von Ihrer "regulären" Python-Installation unabhängig sind.

Die einfachste Möglichkeit, ein Python-Paket in der OSGeo4W-Distribution zu installieren, besteht darin, die OSGeo4W-Shell zu öffnen und pip von dort aus zu verwenden. Dadurch wird das Paket in die von QGIS verwendete Python-Distribution installiert, in meinem Fall unter C:\OSGeo4W64\apps\Python27\und die Module entsprechend unter C:\OSGeo4W64\apps\Python27\Lib\site-packages. Sie können auch einen regulären Vorgangpip list in der OSGeo4W-Shell und Ihrer regulären Windows-Shell ausführen (cmd.exe) die Ausgaben vergleichen, um , welche Pakete möglicherweise fehlen.

Wenn Sie keine Pakete in zwei Python-Installationen installieren möchten, können Sie auch versuchen, den PythonPath so zu ändern , dass Pakete von einer Installation in die andere eingeschlossen werden.

edit: Diese Antwort ist auf der ursprünglichen Frage bezüglich gerichtet pip Module zu installieren , mit QGIS in Windows verwendet werden. OP hat die Frage seitdem überarbeitet / verfeinert, so dass diese Antwort jetzt ein wenig umfangreich ist.


3
Um pip in OSGeoW Shell ich tun musstepython -m pip install wheel setuptools c:\path\to\rasterio-<ver>-win_amd64.whl
Chip

13

Numpy wird standardmäßig in QGIS (Standalone-Version, OSGeo4W-Version) installiert. Für Rasterio gibt es viele Probleme. Ich weiß, dass rasterio leistungsfähig und benutzerfreundlich ist (ich benutze es), aber warum rasterio in einem QGIS-Plugin, während Sie alle Funktionen von PyQGIS haben? (Es wurde für die Python-Shell oder für Skripte entwickelt, die nicht mit QGIS / PyQGIS als Fiona verwendet werden sollen für die Shapefiles verwendet werden sollen.)

Unter Linux oder Mac OS X (Unix-Systeme) verwendet QGIS die Standard-Python-Installation (unabhängig von QGIS) und wenn es einfach ist, ein Python-Modul zu installieren oder zu aktualisieren (standardmäßig sind auch viele Compiler installiert).

In Windows wird Python nicht standardmäßig installiert und QGIS installiert seine eigene Version. Um reine Python-Module (ohne C, C ++ - Bibliotheken) zu installieren, haben Sie Lösungen ( QGIS Standalone und die Python-Module , Installieren von Python-Setuptools in OSGeo4W Python oder Installieren von PySAL für OSGeo4W ).

Bei Modulen, die kompiliert werden müssen (standardmäßig kein Compiler), ist dies jedoch nicht einfach. Sie können versuchen, Ihr installiertes Modul in den QGIS Python-Ordner site_folder zu kopieren / einzufügen, aber es gibt Probleme.

Rasterio muss mit einer installierten GDAL- Bibliothek kompiliert werden. Wenn Sie es beispielsweise von Christoph Gohlke aus installieren , bin ich mir nicht sicher, ob die von QGIS verwendete Version von GDAL dieselbe ist (für die Verweise auf die DLL-Bibliotheken)

Wenn Sie ausschließlich numpy und rasterio verwenden, warum nicht ein eigenständiges Skript?


1. Link funktioniert nicht
nickves

korrigiert, danke und ich habe den Text für das spezifische Rasterio-Problem geändert
Gen

Der Benutzer musste dies von QGIS verwenden. Außerdem war der Rasterrechner in QGIS defekt, sodass ich ihn nicht direkt verwenden konnte.
George Silva

0

In der Python 2.7.14-Konsole von Qgis 2.18.28 funktioniert dies für mich. Sie müssen keine Eingabeaufforderungen mit absoluten Python-Pfaden verwenden.

import subprocess
subprocess.check_call(['python', '-m', 'pip', 'install', 'openpyxl'])

Laut Pip-Entwicklern werden pip.main oder pip._internal.main nicht unterstützt. https://pip.pypa.io/en/stable/user_guide/#using-pip-from-your-program Ich habe die empfohlene Datei sys.executable in 'python' geändert, da es sich in Qgis um qgis selbst handelt.

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.