[GRASS-user] can I access mapset outside of grass, by using python?

Glynn Clements glynn at gclements.plus.com
Mon Mar 8 17:27:59 EST 2010


Nikos Alexandris wrote:

> >  Is there a way to lock-out all
> > > other versions of grass-modules from being detectable when I am already
> > > inside a grass70 session?
> 
> Glynn:
> > The grassXY scripts prepend the GRASS directories to PATH,
> > LD_LIBRARY_PATH, etc. They won't remove any entries which are already
> > there.
> > 
> > I only use the grassXY scripts if I actually need to test the startup
> > process. To switch versions, I use the following script:
> 
> I get the following error:
> --%<---
> /geo/osgeo/src/grass6_devel/dist.x86_64-unknown-linux-gnu/etc/prompt.sh:
> 2: g.gisenv: not found

> So I did some modifications (see below). Sorry for the noob questions
> (and editing).

> --> here I added "unset IFS": wrong, right or not required?

Not required; the IFS setting is with a subshell, for this reason.

> > 	    )
> > 	}
> > 	
> > 	PATH=`strippath $PATH`
> I changed that to:
>          PATH="$GISBASE/bin:$GISBASE/scripts:`strippath $PATH`"

Wait until after $GISBASE has been set.

> > 	export GISBASE=$PWD/dist.i686-pc-linux-gnu
> -(a)-> changed the 2nd part to "dist.x86_64-unknown-linux-gnu"

Right; that would explain the "g.gisenv: not found" errors. These
scripts were constructed for personal use, so they reflect my system.

> -(b)-> I don't understand the logic behind "$PWD" here. From within a
> grass65 or grass70 session why need to re-define $GISBASE? It's already
> set.

The scripts exist to change the "active" version of GRASS. I set all
of the environment variables from a ~/.bashrc.grass file which is
sourced by my ~/.bash_profile file, so GRASS commands work everywhere. 
The environment variables are initially set to use 7.0-svn.

But each version of GRASS which I have checked out has a copy of the
scripts. "source"ing the script will cause that particular version of
GRASS to become "active", i.e. $GISBASE, $PATH, $LD_LIBRARY_PATH and
$PYTHONPATH will all refer to the copy of GRASS in $PWD/dist.i686-pc-linux-gnu.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-user mailing list