[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