[GRASS-user] running a simple python script on windows

Helmut Kudrnovsky hellik at web.de
Thu Apr 16 00:35:53 PDT 2020


ivan.marchesini wrote
> Dear Grass friends,
> 
> I prepared a simple python3 script that runs correctly using Grass 7.8 
> on GNU/Linux.
> 
> I put the module in the script folder of /usr/lib/grass78.  The parser 
> is able to open the interface and the module runs.
> 
> Someone asked me to run the same script using Grass on Windows (the 
> standalone version 7.8).
> 
> I put the script on the  "C:\Program Files\GRASS GIS 7.8\scripts" folder.
> 
> When I run a the script,  even only with the --help option 
> (mySimpleGrassScript --help) from the Layer Manager Console, i get the 
> error listed at the end of this e-mail.
> 
> May I kindly ask your help to understand what I have to check or to 
> modify in order to run the code on window ?
> 
> thank you very much
> 
> Ivan
> 
> 
> The error I get:
> 
> ______________________
> 
> Traceback (most recent call last):
>    File "C:\Program Files\GRASS GIS
> 7.8\etc\python\grass\script\task.py", line 474, in
> get_interface_description
> 
> stderr=PIPE)
>    File "C:\Program Files\GRASS GIS
> 7.8\etc\python\grass\script\core.py", line 57, in __init__
> 
> .format(args[0]))
> OSError
> :
> Cannot find the executable mySimpleGrassScript
> During handling of the above exception, another exception
> occurred:
> Traceback (most recent call last):
>    File "C:\Program Files\GRASS GIS
> 7.8\gui\wxpython\gui_core\forms.py", line 2866, in
> ParseCommand
> 
> blackList=_blackList)
>    File "C:\Program Files\GRASS GIS
> 7.8\etc\python\grass\script\task.py", line 522, in
> parse_interface
> 
> tree = etree.fromstring(get_interface_description(name))
>    File "C:\Program Files\GRASS GIS
> 7.8\etc\python\grass\script\task.py", line 502, in
> get_interface_description
> 
> "\n\nDetails: <{det}>").format(cmd=cmd, det=e))
> grass.exceptions
> .
> ScriptError
> :
> Unable to fetch interface description for command
> '
> <mySimpleGrassScript>
> '.
> Details: 
> <Cannot find the executable
> mySimpleGrassScript>
> During handling of the above exception, another exception
> occurred:
> Traceback (most recent call last):
>    File "C:\Program Files\GRASS GIS
> 7.8\gui\wxpython\core\gconsole.py", line 493, in RunCmd
> 
> task = GUI(show=None).ParseCommand(command)
>    File "C:\Program Files\GRASS GIS
> 7.8\gui\wxpython\gui_core\forms.py", line 2868, in
> ParseCommand
> 
> raise gcmd.GException(e.value)
> core.gcmd
> .
> GException
> :
> Unable to fetch interface description for command
> '
> <mySimpleGrassScript>
> '.
> Details: 
> <Cannot find the executable
> mySimpleGrassScript>
> During handling of the above exception, another exception
> occurred:
> Traceback (most recent call last):
>    File "C:\Program Files\GRASS GIS
> 7.8\gui\wxpython\gui_core\prompt.py", line 413, in
> OnKeyPressed
> 
> self._runCmd(self.GetCurLine()[0].strip())
>    File "C:\Program Files\GRASS GIS
> 7.8\gui\wxpython\gui_core\prompt.py", line 120, in _runCmd
> 
> self.promptRunCmd.emit(cmd=cmd)
>    File "C:\Program Files\GRASS GIS
> 7.8\etc\python\grass\pydispatch\signal.py", line 229, in
> emit
> 
> dispatcher.send(signal=self, *args, **kwargs)
>    File "C:\Program Files\GRASS GIS
> 7.8\etc\python\grass\pydispatch\dispatcher.py", line 349, in
> send
> 
> **named
>    File "C:\Program Files\GRASS GIS
> 7.8\etc\python\grass\pydispatch\robustapply.py", line 60, in
> robustApply
> 
> return receiver(*arguments, **named)
>    File "C:\Program Files\GRASS GIS
> 7.8\gui\wxpython\gui_core\goutput.py", line 120, in 
> <lambda>
> self._gconsole.RunCmd(command=cmd))
>    File "C:\Program Files\GRASS GIS
> 7.8\gui\wxpython\core\gconsole.py", line 496, in RunCmd
> 
> message=unicode(e),
> NameError
> :
> name 'unicode' is not defined

you need a corresponding bat-file in the \bin subfolder, e.g.

grass78\bin\i.tasscap.bat

with this content

@"%GRASS_PYTHON%" "%GISBASE%/scripts/i.tasscap.py" %*

which you have to adapt accordingly.



-----
best regards
Helmut
--
Sent from: http://osgeo-org.1560.x6.nabble.com/Grass-Users-f3884509.html


More information about the grass-user mailing list