Ich arbeite mit der QGIS Python-Konsole. Normalerweise speichere ich alle meine Python-Skripte in ~ / Scripts / python. Ich habe PYTHONPATH in meiner .bashrc auf ~ / Scripts / python gesetzt. Ich kann meine Skripte jedoch nicht von der Konsole in QGIS importieren.
Hier ist mein Fehler, wenn ich versuche, ein Skript namens Create_Figures_2D zu importieren
import Create_Figures_2D
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/qgis/utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
ImportError: No module named Create_Figures_2D
Wie richte ich den PYTHONPATH für Pygis ein?
~/Scripts/python
, PATH hinzuzufügen , das normalerweise für mich funktioniert. Überprüfen Sie es mitimport os; os.path
Antworten:
Führen Sie in der Python-Konsole Folgendes aus:
Überprüfen Sie, ob Ihr PYTHONPATH-Eintrag aufgeführt ist. Ich vermute nicht, da diese Umgebungsvariable für QGISs laufenden Python wahrscheinlich nicht verfügbar ist.
Um Ihren Skriptordner zum sys.path der Konsole hinzuzufügen, führen Sie regelmäßig append () aus:
Dann sollten Sie in der Lage sein, Ihre Module für diese Konsolensitzung von dort zu importieren. Ich empfehle, das ~ auf den vollständigen Home-Pfad Ihres Benutzers zu erweitern (nicht sicher, ob Python die ~ Erweiterung durchführt).
EDIT : ~ Expansion nicht scheinen von sys.path unterstützt werden (auf Mac, zumindest).
Die Python-Konsole von QGIS wird von dem Python-Modul 'console.py' erstellt. Wenn Sie also Ihren benutzerdefinierten Pfad dauerhafter zu sys.path hinzufügen möchten, bearbeiten Sie die Datei console.py und fügen Sie nach dem Modul die Anweisung sys.path.append ('path / to / my / scripts') hinzu Importbereich.
console.py befindet sich hier (für Mac mit dem KyngChaos.com QGIS-Paket ):
Dies ist natürlich ein Hack , der gelöscht wird und bei einem QGIS.app-Update wiederholt werden muss.
Jede Anpassung des sys.path des laufenden QGIS Python-Interpreters ist auch für andere Plugins verfügbar.
Eine sicherere Alternative könnte darin bestehen, ein einfaches PyQGIS-Entwicklungs-Plugin zu erstellen, das sys.path.append () lädt und lediglich ausführt, wann immer Sie möchten. Es könnte diesen Pfad auch aus sys.path beim Plugin unload () entfernen. Ich habe nicht getestet, ob die sys.path-Anpassung eines solchen Plugins in einer bereits geladenen Konsole verfügbar ist (ich vermute, das wäre es.)
quelle