Ich versuche, ein eigenständiges Python-Skript in Windows 7 zu schreiben, das qgis.core und verschiedene andere qgis-Bibliotheken verwendet.
Ich habe hier eine alte Frage zu diesem Thema gefunden: Eigenständige Python-Skripte mit PyQGIS schreiben? und folgte seinem Rat, indem er das Handbuch hier verwendete: http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-applications
Der dort vorgeschlagene Code lautet:
set PYTHONPATH=c:\qgispath\python
gefolgt von:
set PATH=C:\qgispath;%PATH%
Ich fand, dass IDLE das "set am Anfang nicht mochte, so sieht mein Code so aus:
PYTHONPATH="C:\OSGeo4W64\apps\qgis\python"
PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
import qgis.core
und ich bekomme:
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
import qgis.core
ImportError: No module named qgis.core
Ich habe jede Variante der Pfade ausprobiert, die ich mir vorstellen kann, einschließlich des Entfernens von ";% PATH%" am Ende (das sieht ein bisschen überflüssig aus), konnte aber keine weiteren Informationen finden. Hat jemand eine Idee, wo ich sein könnte? falsch machen?
BEARBEITEN:
Nachdem ich Luigi Pirellis Kommentar gesehen habe, habe ich es jetzt versucht:
>>> PYTHONPATH="C:/OSGEO4~1/apps/qgis/./python\qgis"
>>> import qgis.core
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
>>> import qgis.core
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:/OSGEO4~1/apps/qgis/./python\qgis\core;%PATH%"
>>> import qgis.core
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
import qgis.core
ImportError: No module named qgis.core
>>>
Antworten:
Wenn Sie QGIS über OSGeo4W installiert haben, empfehlen wir Ihnen, diesen Arbeitsablauf zu befolgen (ich habe ihn gerade unter Windows 7 getestet):
Öffnen Sie die OSGeo4W-Shell .
Start->All programs->OSGeo4W->OSGeo4W Shell
.Setze Umgebungsvariablen . Mein bevorzugter Weg ist es, diese Bat-Datei (aktualisiert am 2016.11.03: diese Bat-Datei ) von der OSGeo4W-Shell auszuführen. Wie Sie sehen, legt die Datei Umgebungsvariablen folgendermaßen fest:
Natürlich müssen Sie selbst überprüfen, ob diese Pfade in Ihrem Betriebssystem vorhanden sind, und sie gegebenenfalls anpassen.
Laden Sie die .bat-Datei herunter und führen Sie sie aus, indem Sie in der OSGeo4W-Shell darauf zugreifen und die EINGABETASTE drücken.
Importieren Sie PyQGIS-Bibliotheken mit einer der folgenden Methoden:
ein. Geben Sie den Python-Interpreter ein. Führen Sie
python
die OSGeo4W-Shell aus und importieren Sie die Bibliotheken manuell.b. Führen Sie ein Python-Skript aus. Führen Sie
python my_pyqgis_script.py
die OSGeo4W-Shell aus. Ich würde mit einem sehr einfachen beginnen .Der Workflow wurde vor einigen Jahren in GeoTux (auf Spanisch) veröffentlicht und funktioniert immer noch. Wie Sie sehen, füge ich keine Umgebungsvariablen in das Python-Skript ein, sondern setze sie in der OSGeo4W-Shell.
quelle
C:\dllo
), und führen Sie die BAT-Datei aus, indem Sie den Namen der Datei eingeben und die Eingabetaste drücken.Ich habe gerade mit einem ähnlichen Problem gerungen und eine Batch-Datei im Ordner OSGeo4W \ bin mit dem Namen python-qgis.bat festgestellt . Dies ist Teil einer paketbasierten OSGeo4W-Installation von QGIS 2.18.15 x64 unter Windows 10.
Wenn diese Batch-Datei ausgeführt wird, wird der Python-Interpreter geöffnet.
import qgis
läuft erfolgreich von innen.Diese Batch-Datei enthält die Zeile (wie von Germán Carrillo in seiner ursprünglichen Antwort vermerkt):
set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python;%PYTHONPATH%
kurz bevor der Python-Interpreter gestartet wird.
quelle