Mehr

Installieren von Python-Bibliotheken von Drittanbietern für QGIS unter Windows

Installieren von Python-Bibliotheken von Drittanbietern für QGIS unter Windows


Wie kann ich Bibliotheken von Drittanbietern für QGIS-Plugins unter Windows verwenden?

Ich habe für einen Kunden ein Plugin entwickelt, das rasterio und numpy verwendet, aber er hat Probleme bei der Installation von rasterio und numpy.

Eigentlich wurden rasterio und numpy in seinem Hauptsystem Python (C:Python27) installiert, aber ich brauche QGIS Python, um es zu erkennen.


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

Der einfachste Weg, ein Python-Paket in die OSGeo4W-Distribution zu installieren, besteht darin, das OSGeo4W-Shell und verwenden Sie Pip von dort. Dadurch wird das Paket in die von QGIS verwendete Python-Distribution installiert, in meinem Fall unterC:OSGeo4W64appsPython27und die Module entsprechend beiC:OSGeo4W64appsPython27Libsite-packages. Du kannst auch regelmäßigPip-Listeinnerhalb der OSGeo4W-Shell und dein regelmäßiger Windows-Shell (cmd.exe) und vergleichen Sie die Ausgaben, um zu sehen, welche Pakete Ihnen 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.

Bearbeiten: Diese Antwort richtet sich an die ursprüngliche Frage zu Pip um Module zu installieren, die mit QGIS in Windows verwendet werden sollen. OP hat die Frage seitdem bearbeitet / verfeinert, sodass diese Antwort jetzt etwas weit gefasst ist.


Numpy wird standardmäßig in QGIS installiert (Standalone-Version, OSGeo4W-Version). Für Rasterio gibt es viele Probleme. Ich weiß, dass rasterio leistungsstark und einfach zu bedienen 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, nicht zur Verwendung mit QGIS/PyQGIS, als Fiona für die Shapefiles)

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 (es sind auch viele Compiler standardmäßig installiert)

Unter 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)

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

Rasterio muss gegen eine installierte GDAL-Bibliothek kompiliert werden und wenn Sie es beispielsweise aus Christoph Gohlke Inoffiziellen Windows-Binärdateien für Python-Erweiterungspakete 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 unabhängiges Skript?


Der einfache Weg, den ich gefunden habe, um Bibliotheken für Python in QGIS zu installieren, ist

  1. Öffnen Sie OSGeo4W Shell als Administrator

  2. Geben Sie py3_env in die Konsole ein (Dies sollte die Pfade Ihrer QGIS Python-Installation drucken)

  3. Geben Sie python -m pip install {Ihre Bibliothek} ein

und es ist fertig.


Von der Python 2.7.14 Konsole von Qgis 2.18.28 funktioniert dies für mich. Es vermeidet die Verwendung von Eingabeaufforderungen mit absoluten Python-Pfade.

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 sys.executable in 'python' geändert, da es sich in Qgis um qgis selbst handelt.


Sie können die lib von Drittanbietern in Ihren Plugin-Ordner legen und sie dann mit dem folgenden Skript in den Pfad hinzufügenplugin_name\__init__.py:

import sys, os sys.path.insert(0, str(os.path.join(os.path.dirname(os.path.realpath(__file__)),"))+'lib_dir')

Am effizientesten geht das mit conda. Dies funktioniert sowohl für Windows als auch für MacOS.

Installieren Sie zuerst Miniconda/Anaconda, wenn Sie Conda noch nicht in Ihrem System installiert haben.

Erstellen Sie dann eine neue Umgebung, indem Sie Folgendes in Anaconda Prompt für Windows-Computer oder Terminal in Mac eingeben:

$conda erstellen -n 

dann QGIS installieren mit:

$conda install -c conda-forge qgis

Um dann QGIS auszuführen:

$conda aktivieren  $qgis

Um Pakete von Drittanbietern zu installieren, beenden Sie zuerst QGIS und geben Sie Folgendes in die aktivierte Umgebung ein:

$conda install -c conda-forge rasterio $conda install -c anaconda numpy

Denken Sie daran, Ihre Umgebung zu aktivieren, bevor Sie Ihre Pakete installieren. nach der Aktivierung sollte auch pip install funktionieren.


Auflisten von Drittanbieterbibliotheken im Projekt

Ich arbeite seit einiger Zeit an einem Python-Projekt, das einige Bibliotheken von Drittanbietern verwendet. Ich möchte mein Projekt auf einem anderen Server bereitstellen, weiß aber nicht auswendig, welche Projekte ich verwende und jede Zeile Quellcode zu durchforsten wäre zu viel Arbeit.

Gibt es eine Möglichkeit, eine Liste von zu erstellen? Module von Drittanbietern in meinem Projekt, damit ich dies mit dem Installationsprogramm von PIP verwenden kann? Danke für deine Hilfe


Blenderplayer und Bibliotheken von Drittanbietern

Blender Player ist eine schöne Möglichkeit, eigenständige .blend-Dateien zu erstellen, die an andere Personen verteilt werden können.

Für die interessanteste Programmierung würde man jedoch Python-Bibliotheken wie Numpy usw. verwenden. Alle Python-Bibliotheken da draußen machen Python so mächtig. Blender kommt nicht mit z.B. numpy vorinstalliert, aber Bibliotheken von Drittanbietern können installiert werden.

Wenn die .blend-Datei jedoch verteilt wird, hängt sie immer noch von diesen Bibliotheken ab. Das Problem ist, dass jetzt der Endbenutzer, der möglicherweise nicht technisch versiert ist, die Bibliotheken von Drittanbietern allein installieren muss. Gibt es eine Möglichkeit, dies zu beheben?

Diese Frage bezieht sich auf die (unbeantwortete :S) Wie bündelt man Python-Bibliotheken in Addon? , dass eine Lösung dafür eine Lösung für diese sein könnte, aber "how-to-bundle-python-libraries-in-to-addon" bezieht sich auf Plugins, nicht auf .blends für den Standalone-Player, und außerdem ist diese Frage allgemeiner. Jede Möglichkeit, die Bibliotheken von Drittanbietern zu verteilen, wäre in Ordnung (zB könnte man sie in das .blend-Verzeichnis legen und einige Pfade setzen, die dorthin zeigen?).

Ich hatte das Problem bei einer .blend-Datei, und das lag daran Ich habe eine alte Version von Blender verwendet, neuere Versionen haben numpy usw. (Meine alte Version verwendete das Python des Systems, jetzt kommt Python mit einem schönen Python, das allgemeine Dinge wie Numpy enthält, sodass die Frage weniger wichtig ist.


Option 2: Python 3.7 aus dem Quellcode installieren (neueste Version)

Verwenden Sie diesen Vorgang, um den Quellcode vom Entwickler herunterzuladen und zu kompilieren. Es ist etwas komplizierter, aber der Kompromiss besteht darin, auf eine neuere Version von Python zuzugreifen.

Schritt 1: Lokale Repositorys aktualisieren

Um lokale Repositorys zu aktualisieren, verwenden Sie den Befehl:

Schritt 2: Installieren Sie die unterstützende Software

Das Kompilieren eines Pakets aus dem Quellcode erfordert zusätzliche Software.

Geben Sie Folgendes ein, um die erforderlichen Pakete für Python zu installieren:

Schritt 3: Laden Sie die neueste Version des Python-Quellcodes herunter

Um die neueste Version des Python-Quellcodes herunterzuladen, navigieren Sie zum Verzeichnis <strong>/tmp</strong> und verwenden Sie den Befehl <strong>wget</strong>:

Hinweis: Der Quellcode unterscheidet sich von der Software auf der Hauptdownloadseite. Als dieser Artikel geschrieben wurde, war Python 3.7.5 die neueste verfügbare Version.

Schritt 4: Komprimierte Dateien extrahieren

Als nächstes müssen Sie die heruntergeladene tgz-Datei mit dem Befehl extrahieren:

Schritt 5: System testen und Python optimieren

Stellen Sie vor der Installation der Software sicher, dass Sie das System testen und Python optimieren.

Der Befehl <strong>./configure</strong> wertet Python aus und bereitet es auf die Installation auf Ihrem System vor. Die Verwendung der Option <strong>––optimization</strong> beschleunigt die Codeausführung um 10–20 %.

Dieser Schritt kann bis zu 30 Minuten dauern.

Schritt 6: Installieren Sie eine zweite Instanz von Python (empfohlen)

Um eine zweite Installation von Python 3.835 zusätzlich zu Ihrer aktuellen Python-Installation zu erstellen, geben Sie Folgendes ein:

Es wird empfohlen, die Methode <strong>altinstall</strong> zu verwenden. Ihr Ubuntu-System verfügt möglicherweise über Softwarepakete, die von Python 2.x abhängig sind.

(Option) Standard-Python-Installation überschreiben

Geben Sie Folgendes ein, um Python 3.8.3 über Ihrem vorhandenen Python zu installieren:

Lassen Sie den Vorgang abschließen.

Schritt 7: Überprüfen Sie die Python-Version

Hinweis: Wenn Sie mit Python beginnen und noch nach der richtigen IDE oder dem richtigen Editor suchen, sehen Sie sich unseren umfassenden Überblick über die besten Python-IDEs und Code-Editoren an.


Um das InaSAFE-Plugin zu installieren, verwenden Sie den Plugin-Manager in QGIS:

Suchen Sie dann nach „InaSAFE“, wählen Sie es aus und klicken Sie auf die Schaltfläche „Installieren“. Das Plugin wird nun Ihrem Plugin-Menü hinzugefügt.

System Anforderungen

  • Ein Standard-PC mit mindestens 4 GB RAM unter Windows, Linux oder Mac OS X
  • Das QGIS Open Source Geoinformationssystem (http://www.qgis.org). InaSAFE erfordert QGIS Version 1.7 oder neuer.

Einschränkungen

InaSAFE ist ein neues Projekt. Die aktuelle Codeentwicklung hat im Januar 2012 ernsthaft begonnen und es gibt noch viel zu tun. Wir arbeiten jedoch nach der Philosophie, dass Stakeholder von Anfang an Zugriff auf die Entwicklung und den Quellcode haben sollen und laden zu Kommentaren, Anregungen und Beiträgen ein. In unserer Meilensteinliste und unserer Liste offener Probleme finden Sie bekannte Fehler und ausstehende Aufgaben.

Lizenz

InaSAFE ist freie Software: Sie können sie unter den Bedingungen der GNU General Public License Version 3 (GPLv3), wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren.

Die vollständige GNU General Public License ist verfügbar in LICENSE.txt oder http://www.gnu.org/licenses/gpl.html

Haftungsausschluss (GPLv3)

Es wird keine Garantie für das Programm übernommen, soweit dies nach geltendem Recht zulässig ist. Sofern nicht anders schriftlich angegeben, stellen die Urheberrechtsinhaber und/oder andere Parteien das Programm „wie besehen“ ohne jegliche ausdrückliche oder stillschweigende Gewährleistung zur Verfügung, einschließlich, aber nicht beschränkt auf die stillschweigenden Gewährleistungen der Marktgängigkeit und Eignung für einen bestimmten Zweck . Das gesamte Risiko hinsichtlich der Qualität und Leistung des Programms liegt bei Ihnen. Sollte sich das Programm als mangelhaft erweisen, übernehmen Sie die Kosten aller notwendigen Wartungen, Reparaturen oder Korrekturen.

Haftungsbeschränkung (GPLv3)

In keinem Fall haften Ihnen ein Urheberrechtsinhaber oder eine andere Partei, die das Programm wie oben zulässig modifiziert und/oder übermittelt, für Schäden, einschließlich allgemeiner, besonderer, beiläufiger oder Folgeschäden, sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart Schäden, die sich aus der Nutzung oder Unmöglichkeit der Nutzung des Programms ergeben (einschließlich, aber nicht beschränkt auf Datenverlust oder Datenungenauigkeiten oder Verluste, die Ihnen oder Dritten zugefügt werden, oder einem Ausfall des Programms mit anderen Programmen), auch wenn dieser Inhaber oder eine andere Partei wurde auf die Möglichkeit solcher Schäden hingewiesen.


7 Antworten 7

Python3.4 in Blender ist in Blender gebündelt. Es teilt keine Bibliotheken mit dem Python des Systems (siehe diesen verwandten Beitrag).

Um zusätzliche Bibliotheken zu verwenden, müssen Sie sie also in /blender/2.72/python/lib/python3.4/ installieren.

ODER Sie können /blender/2.72/python entfernen und Blender wird auf das auf dem System installierte Python zurückgreifen (die Versionen müssen jedoch kompatibel sein).

ODER Sie können einen Ordner im Skript Eingabe der Nutzerpreferenzen:

Beachten Sie, dass dieser Ordner muss 3 Unterverzeichnisse enthalten : Addons , Module und Start . So können Sie die Bibliothek im Modulordner installieren.

Wie Gandalf3 vorgeschlagen hat, finden Sie hier weitere Informationen im Wiki.

Während der Python von Blender nicht mit installiertem Pip geliefert wird, ist es tut haben sicherungspip. Das bedeutet, dass Sie Folgendes tun können:

Wie Noam Peled erwähnt, müssen Sie diese Befehle als Administrator unter Windows ausführen - es hängt wahrscheinlich davon ab, wie Sie Blender auf Ihrem Linux-Rechner installiert haben, aber Sie müssen dies möglicherweise auch mit erweiterten Berechtigungen tun.

Sehen Sie sich auch dieses an, es greift die richtige Version für Mixer-Python, im Gegensatz zu der folgenden Methode:

Ich arbeite übrigens unter Linux 64 Bit und habe SciPy und Numpy mit meinem Paketmanager installiert.

Sie möchten Ihr Installationsverzeichnis Ihres Systempythons scipy suchen, indem Sie das Modul in die Konsole importieren und die Methode __path__ verwenden. Es sollte den Pfad ausgeben, in dem sich das Modul befindet. Das sollte Sie auf einen Ordner namens "site-packages" verweisen, in dem sich der scipy-Ordner befinden sollte. Kopieren Sie den gesamten scipy-Ordner in den Ordner "site-packages" in der Blender-Python-Version. Sollte einem ähnlichen Pfad wie Ihr Systempython folgen.

Wenn das nicht funktioniert, bei mir nicht, überprüfen Sie, ob die von Ihnen installierte Version mit der Python-Version von Blender kompatibel ist. Wenn dies der Fall ist, aber immer noch nicht funktioniert, können Sie auch versuchen, ein geeignetes Quellcodepaket herunterzuladen. Die Installation ist unter Linux wirklich einfach. Sollte mit "python3 setup.py install" im Ordner des heruntergeladenen Quellcodepakets funktionieren, in dem sich die setup.py befindet.

Das Kopieren des Inhalts des Site-Pakets funktioniert bei mir auch unter Windows. Ich habe dafür das Winpython-Paket verwendet.


Python-Pakete

GeoPandas möglicherweise die wichtigste Bibliothek für die Arbeit mit vektorbasierten Geodaten in Python. Es baut auf den geometrischen Operationen in Formschön und die Datentypen in Pandas.

GDAL ist eine Übersetzerbibliothek für eine Vielzahl von Raster- und Vektordatenformaten.

PyProj ist die Python-Schnittstelle zur PROJ-Bibliothek für kartografische Projektionen und Koordinatentransformationen.

PySAL Die Python Spatial Analysis-Bibliothek bietet Werkzeuge für die räumliche Datenanalyse, einschließlich Clusteranalyse, räumliche Regression, räumliche Ökonometrie sowie explorative Analyse und Visualisierung.

Matplotlib ist eine beliebte Bibliothek zum Plotten und interaktiven Visualisierungen einschließlich Karten. Aufgebaut auf NumPy

RSGISLib ist die Fernerkundungs- und GIS-Softwarebibliothek für die Arbeit mit Fernerkundungs- und Bilddaten. Vielzahl von rasterbasierten Werkzeugen, einschließlich Bildkalibrierung und -klassifizierung.

Geopie - Geokodierungs-Client für mehrere beliebte Geokodierungs-Webdienste, darunter Nominatim und Google.


Projektlinks

Statistiken

Sehen Sie sich Statistiken für dieses Projekt über Libraries.io an oder verwenden Sie unseren öffentlichen Datensatz in Google BigQuery

Lizenz: MIT-Lizenz (MIT)

Tags gis, geographisch, erde, entfernung, geodätisch

Betreuer

Klassifikatoren

  • Entwicklungsstatus
    • 5 - Produktion/Stall
    • Entwickler
    • Wissenschaftsforschung
    • OSI-genehmigt :: MIT-Lizenz
    • Betriebssystemunabhängig OS
    • Python
    • Wissenschaft/Ingenieurwesen :: GIS
    • Softwareentwicklung :: Bibliotheken :: Python-Module

    Schritt 1: Installieren Sie den Connector¶

    Der Snowflake-Connector für Python ist in PyPI verfügbar. Ein Änderungsprotokoll ist auf der Site verfügbar, damit Sie die Änderungen feststellen können, die in jedem Release implementiert wurden.

    Bei der Installation einer Version des Snowflake Connectors für Python empfiehlt Snowflake die Installation der Versionen der abhängigen Bibliotheken, die mit dieser Version des Connectors getestet wurden.

    So installieren Sie den Snowflake Connector für Python und die abhängigen Bibliotheken:

    Bestimmen Sie die Version von Snowflake Connector für Python, die Sie installieren möchten.

    Führen Sie zum Installieren der abhängigen Bibliotheken den Befehl pip (oder pip3 ) aus und zeigen Sie auf die Anforderungsdatei für diese Version des Connectors.

    Angenommen, die neueste Version von Snowflake Connector für Python ist 2.4.5 und Sie verwenden Python 3.6. Führen Sie den folgenden Befehl aus, um die abhängigen Bibliotheken für diese Version des Connectors zu installieren:

    Im obigen Beispiel gibt der Pfad zur Anforderungsdatei die Version des Connectors („/v2.4.5/“) an. Der Name der Anforderungsdatei („requirements_36.reqs“) gibt die Version von Python (Python 3.6) an.

    Wenn Sie eine Version von Snowflake Connector für Python zwischen 2.2.0 und 2.3.5 installieren müssen, ersetzen Sie .reqs im Dateinamen der Anforderungen durch .txt . Verwenden Sie beispielsweise Requirements_36.txt anstelle von requirements_36.reqs .

    Wenn die Ausführung des Befehls pip zu Kompilierungsfehlern führt, müssen Sie möglicherweise den C-Compiler und das Python-Entwicklungspaket installieren, um einige der erforderlichen Module wie PyCryptoDome zu erstellen.

    Weitere Informationen zum Installieren eines C-Compilers finden Sie unter http://gcc.gnu.org/ (Linux) oder https://developer.apple.com/xcode/ (macOS).

    Führen Sie den folgenden Befehl aus, um den Connector zu installieren:

    wo Ausführung ist die Version des Connectors, den Sie installieren möchten.

    Um beispielsweise Version 2.4.5 von Snowflake Connector für Python zu installieren, führen Sie Folgendes aus:

    Wenn Sie die API-Unterstützung für Pandas DataFrames verwenden möchten, müssen Sie auch Pandas extra installieren. Weitere Informationen finden Sie unter Verwenden von Pandas DataFrames mit dem Python Connector .


    So installieren Sie ein Drittanbieter-Tool in der Anaconda-Python-Distribution

    Ich habe die Anaconda-Python-Distribution an folgendem Ort installiert:

    Jetzt möchte ich ein Drittanbieter-Tool essentia installieren. Es kann nicht mit pip installiert werden. Also muss ich die Dateien herunterladen und erstellen. Die Anweisungen finden Sie in diesem Link.

    Die Installation spiegelt sich jedoch nicht in der Anaconda-Distribution wider. Wenn ich das Paket in Anaconda importiere, heißt es, dass kein Modul gefunden wurde. Aber wenn ich die Standard-Python-Distribution von /usr/bin/python2.7 ausführe, kann ich das Paket importieren. Offensichtlich ist es in Standardpython installiert, aber nicht in der Anaconda-Distribution. Wie installiere ich es in der Anaconda-Python-Distribution?


    Schau das Video: Update QGIS without uninstalling current version