[GRASS-dev] [GRASS-SVN] r60679 - grass/trunk/lib/python/script

Anna Petrášová kratochanna at gmail.com
Wed Jul 2 08:19:23 PDT 2014


On Wed, Jul 2, 2014 at 10:59 AM, Vaclav Petras <wenzeslaus at gmail.com> wrote:

>
> On Wed, Jul 2, 2014 at 10:39 AM, Martin Landa <landa.martin at 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)



> It seems that shutil_which returned None at line (from the patch):
>
> cmd = shutil_which(args[0])
>
> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20140702/ab6c6ed1/attachment.html>


More information about the grass-dev mailing list