On Jun 30, 2009, at 7:10 AM, grass-user-requ...@lists.osgeo.org wrote:

Date: Tue, 30 Jun 2009 15:58:01 +0200
From: Moritz Lennert <mlenn...@club.worldonline.be>
Subject: Re: [GRASS-user] grass 6.4 rc5 and python scripting
To: Ricardo Filipe Soares Garcia da <ricardo.garcia.si...@gmail.com>
Cc: grass-user@lists.osgeo.org
Message-ID: <4a4a19e9.6030...@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

_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to