So greifen Sie von meiner virtuellen Umgebung aus auf das QGIS-Modul zu

11

Ich verwende Ubuntu 14.4 und habe eine virtuelle Python-Umgebung installiert. Dann habe ich mehrere Python-Bibliotheken installiert (gdal, lxml, psycopg2 usw.)

Auch in meinem System habe ich das Modul für QGIS. Wenn ich also Python eingebe, kann ich dieses Modul importieren als:

import qgis.core

Aber wenn ich versuche, dasselbe über meine virtuelle Umgebung zu tun, wird eine Fehlermeldung angezeigt: Modul nicht gefunden.

Als ich die virtuelle Umgebung erstellt habe, habe ich Folgendes getan:

virtualenv --no-site-packages env

Das schränkt meine Umgebung von der Umgebung des Systems ein. Die Frage ist, wie ich auf das QGIS-Modul in meiner virtuellen Umgebung zugreifen kann.

user1919
quelle
1
Dies könnte helfen. Habe es noch nicht selbst versucht.
Nate Wanner
1
Dies könnte auch helfen. Habe es nicht selbst versucht.
Matthias Kuhn

Antworten:

1

Nach dem Erstellen und Aktivieren Ihrer virtuellen Umgebung:

virtualenv --no-site-packages env
source env/bin/activate
pip install [your libs]

Sie müssen die Umgebungsvariable PYTHONPATH für den Python-Installationspfad Ihres QGIS definieren.

Bitte ändern Sie [qgispath] in den Pfad Ihres qgis:

export PYTHONPATH=/[qgispath]/share/qgis/python

Es ist auch erforderlich, LD_LIBRARY_PATH festzulegen

export LD_LIBRARY_PATH=/[qgispath]/lib

um diesen Fehler zu verhindern

>>> import qgis.core
ImportError: libqgis_core.so.1.5.0: cannot open shared object file: No such file or directory

Ihr Python-Pfad ist nur für die virtuelle Umgebung und für Ihre Sitzung festgelegt. Wenn Sie es automatisch unter dieser virtuellen Umgebung einstellen möchten, können Sie eine Datei unter env/lib/python2.7/site-packagesmit einer .pth-Datei erstellen.

Am bequemsten ist es, eine Pfadkonfigurationsdatei zu einem Verzeichnis hinzuzufügen, das sich bereits im Python-Pfad befindet, normalerweise zum Verzeichnis ... / site-packages /. Pfadkonfigurationsdateien haben die Erweiterung .pth, und jede Zeile muss einen einzelnen Pfad enthalten, der an sys.path angehängt wird. (Da die neuen Pfade an sys.path angehängt werden, überschreiben Module in den hinzugefügten Verzeichnissen keine Standardmodule. Dies bedeutet, dass Sie diesen Mechanismus nicht zum Installieren fester Versionen von Standardmodulen verwenden können.) Source

Verwenden Sie zum Erstellen und Auffüllen der Datei einen Befehl wie den folgenden:

cat > [yourVirtualEnv]/lib/python2.7/site-packages/qgispythonpath.pth << /[qgispath]/share/qgis/python

Gefunden im Python Qgis-Kochbuch und einem zugehörigen Antwortsatz Pythonpath

Hugo Roussaffa - GeoDatup
quelle