Hi all, I'm using windows XP and QGIS 1.7 (classic installation, python 2.5, grass 6.4.1 ). My Goal is to create a QGIS plugin for complex network analysis (TSP,steinman tree,...), using GRASS capabilities. It aims to be very user-friendly, and cross-platform. I'm trying to call GRASS from within a QGIS python plugin, but I get the following error (python console module):
Code: (inspired by: http://grass.osgeo.org/wiki/Working_with_GRASS_without_starting_it_explicitly ) > import os >> import sys >> >> gisbase = os.environ['GISBASE'] = r" ....path to QGIS .... >> sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "python"))" >> > > >> import grass.script as grass >> > Error: > >>> import grass.script as grass > > Traceback (most recent call last): > > File "<input>", line 1, in <module> > > File "C:/PROGRA~1/QUANTU~2/apps/qgis/./python\qgis\utils.py", line 283, in > _import > > mod = _builtin_import(name, globals, locals, fromlist, level) > > File "C:\Program Files\Quantum GIS > Wroclaw\apps\grass\grass-6.4.1\etc\python\grass\script\__init__.py", line 1, > in <module> > > from core import * > > File "C:/PROGRA~1/QUANTU~2/apps/qgis/./python\qgis\utils.py", line 283, in > _import > > mod = _builtin_import(name, globals, locals, fromlist, level) > > File "C:\Program Files\Quantum GIS > Wroclaw\apps\grass\grass-6.4.1\etc\python\grass\script\core.py", line 1073, > in <module> > > debug_level = int(gisenv().get('DEBUG', 0)) > > File "C:\Program Files\Quantum GIS > Wroclaw\apps\grass\grass-6.4.1\etc\python\grass\script\core.py", line 514, > in gisenv > > s = read_command("g.gisenv", flags='n') > > File "C:\Program Files\Quantum GIS > Wroclaw\apps\grass\grass-6.4.1\etc\python\grass\script\core.py", line 225, > in read_command > > ps = pipe_command(*args, **kwargs) > > File "C:\Program Files\Quantum GIS > Wroclaw\apps\grass\grass-6.4.1\etc\python\grass\script\core.py", line 202, > in pipe_command > > return start_command(*args, **kwargs) > > File "C:\Program Files\Quantum GIS > Wroclaw\apps\grass\grass-6.4.1\etc\python\grass\script\core.py", line 164, > in start_command > > return Popen(args, **popts) > > File "C:\Program Files\Quantum GIS > Wroclaw\apps\grass\grass-6.4.1\etc\python\grass\script\core.py", line 55, in > __init__ > > startupinfo, creationflags) > > File "C:\PROGRA~1\QUANTU~2\apps\Python25\lib\subprocess.py", line 587, in > __init__ > > errread, errwrite) = self._get_handles(stdin, stdout, stderr) > > File "C:\PROGRA~1\QUANTU~2\apps\Python25\lib\subprocess.py", line 700, in > _get_handles > > p2cread = self._make_inheritable(p2cread) > > File "C:\PROGRA~1\QUANTU~2\apps\Python25\lib\subprocess.py", line 745, in > _make_inheritable > > DUPLICATE_SAME_ACCESS) > > WindowsError: [Error 6] The handle is invalid > I am pretty sure this is due to the Python Path, because the same code works well in a classic python console (outside QGIS). But I'm not able to resolve this issue. I haven't test yet, but I'm pretty sure it's working on ubuntu. Another Question: Does anyone know how to import QGIS vector layer directly into GRASS ( as v.in.ogr.qgis.loc from the GRASS Plugin) Any help is welcome. Romain, * *
_______________________________________________ Qgis-developer mailing list Qgis-developer@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/qgis-developer