[GRASS-user] grass 6.4 rc5 and python scripting
Michael Barton
michael.barton at asu.edu
Tue Jun 30 11:04:14 EDT 2009
On Jun 30, 2009, at 7:10 AM, grass-user-request at lists.osgeo.org wrote:
> Date: Tue, 30 Jun 2009 15:58:01 +0200
> From: Moritz Lennert <mlennert at club.worldonline.be>
> Subject: Re: [GRASS-user] grass 6.4 rc5 and python scripting
> To: Ricardo Filipe Soares Garcia da <ricardo.garcia.silva at gmail.com>
> Cc: grass-user at lists.osgeo.org
> Message-ID: <4A4A19E9.6030501 at club.worldonline.be>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
> On 30/06/09 12:58, Ricardo Filipe Soares Garcia da wrote:
>> Hello list
>>
>> I compiled grass-6.4.0RC5 (downloaded a tarball from the main site).
>> I'd like to learn about scripting grass with python.
>>
>> Following the first sample script at the GRASS Python scripting
>> library (http://download.osgeo.org/grass/grass6_progman/pythonlib.html
>> )
>> I created a test file called teste.py, and placed it on the Desktop.
>> When I try to run it inside a GRASS session I am geting the following
>> error:
>>
>> GRASS 6.4.0RC5 (aeigT3):~/Desktop > ./teste.py
>> sh: teste.py: not found
>> Traceback (most recent call last):
>> File "/usr/local/grass-6.4.0RC5/etc/wxpython/gui_modules/
>> menuform.py",
>> line 1931, in <module>
>> GrassGUIApp( grassTask( sys.argv[1] ) ).MainLoop()
>> File "/usr/local/grass-6.4.0RC5/etc/wxpython/gui_modules/
>> menuform.py",
>> line 335, in __init__
>> xml.sax.parseString( getInterfaceDescription( grassModule ) ,
>> processTask( self ) )
>> File "/usr/local/grass-6.4.0RC5/etc/wxpython/gui_modules/
>> menuform.py",
>> line 1748, in getInterfaceDescription
>> raise IOError, _("Unable to fetch interface description for
>> command '%s'.") % cmd
>> IOError: Unable to fetch interface description for command
>> 'teste.py'.
>>
>> The file contents are just a copy+paste from the online example. Can
>> someone point me to the cause of the error?
>
> In order for g.parser to work, the file teste.py needs to be in your
> PATH. So, you can do something like this:
>
> export PATH=$PATH:.
> ./teste.py
>
>
> Moritz
There are at least 3 ways for a GRASS to recognize and run a custom
script of any kind, including Python.
1. Put it into a folder/directory already recognized by GRASS by
default, such as $GISBASE/scripts (noted by Martin)
2. Change your executables PATH list (noted above by Moritz).
3. Set the GRASS_ADDON_PATH variable in the .grassrc6 file (or its
equivalent in GRASS 7). For example, I could add...
GRASS_ADDON_PATH: /Users/Michael/Desktop;/Users/Michael/Documents
...and any script on my desktop or in my documents folder would be
accessible to g.parser and GRASS. (Note: I'm not sure if ";" or
something else should be the separator between paths). This is very
convenient for having a permanent folder outside the main GRASS
distribution location where you can put any custom scripts.
Michael
More information about the grass-user
mailing list