Vorrei eseguire alcuni script Python piccoli e semplici per QGIS (Mac) dall'esterno di QGIS. Con esterno intendo in questo contesto, o la normale riga di comando os (terminal.app) o anche meglio, direttamente da Sublime Text (editor di testo), ma sicuramente non tramite la console integrata Python QGIS.
Ho letto vari tutorial, ad es. Http://www.qgis.org/pyqgis-cookbook/intro.html#python-applications e sono in grado di ottenere un riferimento all'app QGIS, ma sfortunatamente no qgis.utils.iface
o qualcos'altro di più profondo . Questo piccolo frammento di codice dovrebbe ad esempio stampare il nome del livello attivo ... ecco cosa ho:
import sys
sys.path.append("/Applications/QGIS.app/Contents/Resources/python")
from qgis.core import *
import qgis.utils
print "helo" # console output: helo
QgsApplication.setPrefixPath("/Applications/QGIS.app/", True)
QgsApplication.initQgis()
print QgsApplication # console output: <class 'qgis.core.QgsApplication'>
print qgis.utils.iface # = console output: none
aLayer = qgis.utils.iface.activeLayer()
print aLayer.name()
QgsApplication.exitQgis()
Per favore non rispondermi ora come creare un plugin o qualcos'altro di "pesante". Sto solo cercando un modo semplice e veloce per girare gli script da un comodo editor di testi a QGIS.
4
. Nel frattempo devo convivere2
, il che è davvero un dolore fare tutto il tempoimport script
seguitoreload(script)
e ovviamente passare dal mio editore a QGIS. Ho anche controllato il plugin scriptrunner, il che è promettente, ma poi non sono stato in grado di ottenerne nessunoprint "debug value"
sulla console QGIS. Sai, per caso, come fare in modo che uno script scriptrunner stia stampando qualcosa sulla console QGIS? Grazie molto! Aspetterò la tua risposta e poi chiuderò la domanda!