On Wed, Jul 2, 2014 at 11:19 AM, Anna Petrášová <kratocha...@gmail.com> wrote:
> > > > On Wed, Jul 2, 2014 at 10:59 AM, Vaclav Petras <wenzesl...@gmail.com> > wrote: > >> >> On Wed, Jul 2, 2014 at 10:39 AM, Martin Landa <landa.mar...@gmail.com> >> wrote: >> >>> The reason is empty XML wxGUI menu file (menudata.xml) produced by >>> building system, see [2]. >>> >>> Traceback (most recent call last): >>> File "core/toolboxes.py", line 759, in <module> >>> sys.exit(main()) >>> File "core/toolboxes.py", line 745, in main >>> userDefined=False) >>> File "core/toolboxes.py", line 204, in createTree >>> moduleItems=moduleItems) >>> File "core/toolboxes.py", line 241, in toolboxes2menudata >>> _expandRuntimeModules(root) >>> File "core/toolboxes.py", line 514, in _expandRuntimeModules >>> desc, keywords = _loadMetadata(name) >>> File "core/toolboxes.py", line 540, in _loadMetadata >>> task = gtask.parse_interface(module) >>> File >>> "c:\osgeo4w\usr\src\grass_trunk\dist.i686-pc-mingw32\etc\python\grass\script\task.py", >>> line 501, in parse_interface >>> tree = etree.fromstring(get_interface_description(name)) >>> File >>> "c:\osgeo4w\usr\src\grass_trunk\dist.i686-pc-mingw32\etc\python\grass\script\task.py", >>> line 465, in get_interface_description >>> stderr = PIPE) >>> File >>> "c:\osgeo4w\usr\src\grass_trunk\dist.i686-pc-mingw32\etc\python\grass\script\core.py", >>> line 58, in __init__ >>> name, ext = os.path.splitext(cmd) >>> File "c:/OSGeo4W/apps/Python27\lib\ntpath.py", line 190, in splitext >>> return genericpath._splitext(p, sep, altsep, extsep) >>> File "c:/OSGeo4W/apps/Python27\lib\genericpath.py", line 91, in >>> _splitext >>> sepIndex = p.rfind(sep) >>> AttributeError: 'NoneType' object has no attribute 'rfind' >>> make[4]: *** [xml/menudata.xml] Error 1 >>> >> >> It's because it can't find v.in.gps. I suggest to add to the patch > something like this: > > + def __init__(self, args, **kwargs): > + if ( sys.platform == 'win32' > + and isinstance(args, list) > + and not kwargs.get('shell', False) > + and kwargs.get('executable') is None ): > + cmd = shutil_which(args[0]) > if cmd is None: > raise OSError > + args = [cmd] + args[1:] > + name, ext = os.path.splitext(cmd) > + if ext.lower() not in self._builtin_exts: > + kwargs['shell'] = True > + args = [self._escape_for_shell(arg) for arg in args] > + subprocess.Popen.__init__(self, args, **kwargs) > Otherwise the patch seems to work, I can run: grass.run_command('r.support', map='mymap', title="|@#~$%^&*()><") in GUI python console which was not possible before. r.info then gives correct result. Running this command in gui console works but r.info gives incorrect result: r.support map=scanned title="|@#$%^&*()" and r.info gives ^^^|@#$%^^^^^^^&*() but gui command line functionality was not affected by this patch, it uses different popen class, this is related to r60634 and following. > > > >> It seems that shutil_which returned None at line (from the patch): >> >> cmd = shutil_which(args[0]) >> >> _______________________________________________ >> grass-dev mailing list >> grass-dev@lists.osgeo.org >> http://lists.osgeo.org/mailman/listinfo/grass-dev >> > >
_______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev