[GRASS-dev] Handling of Python scripts on MS Windows

Glynn Clements glynn at gclements.plus.com
Sat Feb 8 11:41:55 PST 2014


Markus Neteler wrote:

> > The difference is that you don't "start" GRASS. You set the required
> > environment variables from e.g. ~/.profile so that GRASS commands work
> > in any shell (or via any other execution mechanism, e.g. M-! from
> > within Emacs).
> 
> This is hardly feasible for the majority of the users. Perhaps I don't
> understand the suggestion, at least for Windows OS users (nad most
> Linux/Mac newcomers).

It's not something users should need to concern themselves with.

Many packages require certain environment settings (which is why most
modern Linux systems have e.g. /etc/profile.d or /etc/env.d, with each
file belonging to a different package).

Most packages made up of command-line utilities don't require you to
"start" the package before you can use the commands which comprise it.

It would be quite straightforward for a GRASS package to install an
environment file which sets GISBASE and GISRC so that GRASS commands
just work anywhere.

Things get marginally more complex if you either need multiple
versions installed concurrently, or multiple concurrent sessions.

The former is seldom supported, particularly for packages consisting
of many distinct utilities (having python2 and python3 executables is
one thing, versioning dozens or hundreds of distinct commands is
another).

The latter is fairly trivial to implement on Unix (just use $$ in the
setting of GISRC), and could be implemented on Windows (which doesn't
have the equivalent of ~/.profile etc) with fairly minor changes to
lib/gis/env.c.

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


More information about the grass-dev mailing list