[GRASS-user] Re: Envoking GRASS in a python script
Glynn Clements
glynn at gclements.plus.com
Wed Oct 19 16:32:18 EDT 2011
kungphil wrote:
> Just a couple of things, this...
>
> os.environ['PATH'] = os.pathsep.join(os.environ['PATH'],bindir,scriptdir)
>
> ...should have [] around the arguments so as to make a list as the join
> function can take only one argument, so it looks like this...
>
> os.environ['PATH'] = os.pathsep.join([os.environ['PATH'],bindir,scriptdir])
Right. os.path.join() is a function named "join" in the os.path
module, and accepts multiple arguments. os.pathsep.join() is the
"join" method of the string class, called on the string os.pathsep,
and expects a single iterable as its argument. I got the two mixed up.
> And I had to set PYTHONPATH in my .bash_profile to get it to recognise the
> grass module, not sure why.
Python reads PYTHONPATH at startup, before executing the script.
Setting os.environ['PYTHONPATH'] won't have any effect upon the
current Python process, only upon processes descended from it.
However, you can modify sys.path directly, and that should affect
subsequent imports within the same script.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-user
mailing list