Pages: 1
- Sujet précédent - QGIS 2.2 osgeo4w Win7 : extension Script Runner 2.0.1 Erreur execution - Sujet suivant
#1 Mon 14 April 2014 10:44
- GAILLOT Alexis
- Participant actif
- Lieu: REMIREMONT
- Date d'inscription: 26 Mar 2009
- Messages: 53
QGIS 2.2 osgeo4w Win7 : extension Script Runner 2.0.1 Erreur execution
QGIS 2.2 du pack osgeo4w sous Win7 32bits et 64bits, Extension Script Runner 2.0.1 de Gary Sherman.
Bonjour,
J'ai testé l'excellente extension Script Runner 2.0.1, qui permet d'exécuter facilement des scripts python externes depuis QGIS, dans l'idée de faire exécuter un script facilement à des utilisateurs novices. Mon script doit réceptionner une valeur saisie par l’utilisateur, et faire un traitement qu'il est inutile de détailler ici.
A cet effet, j'utilise la fonctionnalité Passing Arguments décrite dans l'aide de l’extension : "You can pass mandatory as well as keyword arguments to your script. Script Runner examines your script at runtime and presents you with a dialog for entering each argument".
J'ai commencé par exécuter le script exemple fournit dans l'aide, pour maîtriser cette fonctionnalité dans un contexte très simple : voir le code ci-dessous.
Code:
# -*-coding:Utf-8 -* """Load all shapefiles in a given directory.""" from glob import glob from os import path from qgis.core import * from qgis.gui import * import qgis.utils class Loader: def __init__(self, iface): """Initialize using the qgis.utils.iface object passed from the console. """ self.iface = qgis.utils.iface def load_shapefiles(self, shp_path): """Load all shapefiles found in shp_path""" print "Loading shapes from %s" % path.join(shp_path, "*.shp") shps = glob(path.join(shp_path, "*.shp")) for shp in shps: (shpdir, shpfile) = path.split(shp) print "Loading %s" % shpfile lyr = QgsVectorLayer(shp, shpfile, 'ogr') QgsMapLayerRegistry.instance().addMapLayer(lyr) def run_script(iface, data_path, buffer_size, **myargs): ldr = Loader(iface) print "Loading all shapefiles in %s" % myargs['shape_path'] ldr.load_shapefiles(myargs['shape_path']) # Do something with data_path and buffer_size... print "data_path = %s" % data_path print "buffer_size = %s" % buffer_size
Lors de l'execution du script exemple, j'ai l'erreur suivante :
Traceback (most recent call last):
File "C:/Users/agaillot/.qgis2/python/plugins\scriptrunner\scriptrunner.py", line 548, in run_script
print "----------%s----------" % datetime.datetime.now()
File "C:/Users/agaillot/.qgis2/python/plugins\scriptrunner\stdout_textwidget.py", line 55, in write
sys.__stdout__.flush()
IOError: [Errno 9] Bad file descriptor
Quelqu'un a-t-il un retour d'expérience là-dessus ? Cette façon de réceptionner une valeur transmise par l'utilisateur ( Passing Arguments) fonctionne-t-elle avec cette version de QGIS ?
Merci. Cordialement,
Alexis GAILLOT
Hors ligne
#2 Fri 11 December 2015 13:03
- nicart
- Juste Inscrit !
- Date d'inscription: 11 Dec 2015
- Messages: 2
Re: QGIS 2.2 osgeo4w Win7 : extension Script Runner 2.0.1 Erreur execution
Bonjour,
Il se trouve que j'ai exactement le même problème (le script fonctionne très bien sous linux).
Avez-vous trouvé une solution depuis ?
Merci
Hors ligne
Pages: 1
- Sujet précédent - QGIS 2.2 osgeo4w Win7 : extension Script Runner 2.0.1 Erreur execution - Sujet suivant