[GRASS-user] GRASSBIN environment variable

Hi all – I am trying out the grass-session package for the first time and am having issues with the GRASSBIN environment variable. It looks like the grass-session I was able to download references grass75svn.bat. I’m onto grass76.

I was able to get around this in a python session with os.environ[‘GRASSBIN’]=D:<mypath>\grass76.bat, but it’d be nice to not have to do that.

If I run “set GRASS” from the command line, I see that GRASSBIN=D:<mypath>\grass75svn.bat even GRASS_VERSION=7.6.1

Where is the GRASSBIN variable set? I’ve been looking around and can’t seem to find it.

Cheers,

Alex

Hi Alex,

Yes indeed. Would be nice to avoid that.

There is actually an open pull request about it:

https://github.com/zarch/grass-session/pull/12/files

However, I guess a completely version independent solution would be preferable…

With Python 3 shutil.which() will be available also on Windows, however, in OSGeo4W, a version independent “grass.bat” does not seem to be available.

So, currently, for Windows, it is inevitable to include versions. Could be done like this:

def get_grassbin():

“”“Find GRASS GIS startup binary”“”

from shutil import which

grassbin = which(‘grass’)

if not grassbin:

for v in range(71, 80):

grassbin_version = which(‘grass{}’.format(v))

if grassbin_version:

grassbin = grassbin_version

return grassbin

get_grassbin()

Not sure when the GRASSBIN variable is set, I guess during startup of GRASS. So when you run grass-session from within GRASS the variable should be set (just guessing though)…

Cheers

Stefan

···

From: grass-user grass-user-bounces@lists.osgeo.org On Behalf Of Moody, Alex
Sent: fredag 16. august 2019 01:00
To: grass-user@lists.osgeo.org
Subject: [GRASS-user] GRASSBIN environment variable

Hi all – I am trying out the grass-session package for the first time and am having issues with the GRASSBIN environment variable. It looks like the grass-session I was able to download references grass75svn.bat. I’m onto grass76.

I was able to get around this in a python session with os.environ[‘GRASSBIN’]=D:<mypath>\grass76.bat, but it’d be nice to not have to do that.

If I run “set GRASS” from the command line, I see that GRASSBIN=D:<mypath>\grass75svn.bat even GRASS_VERSION=7.6.1

Where is the GRASSBIN variable set? I’ve been looking around and can’t seem to find it.

Cheers,

Alex