Milton Cezar Ribeiro wrote: > I can run some simple scripts on python if I start > Msys -> grass64 -> python myscrypt.py > > But now I would like to know if I can build a python > code outside of a msys/grass session, and get > access on a mapset withour stay running grass.
The GRASS libraries require certain environment variables to be set. A "GRASS session" is just a set of processes (e.g. a shell and/or GUI) which have the necessary environment settings. Specifically: GISBASE needs to be set to the top-level directory of the GRASS installation. GISRC needs to contain the absolute path to a file containing settings for GISDBASE, LOCATION_NAME and MAPSET. PATH needs to include $GISBASE/bin and $GISBASE/scripts. If the GRASS libraries are shared libraries, the loader needs to be able to find them. This normally means that LD_LIBRARY_PATH (Linux, Solaris), DYLD_LIBRARY_PATH (MacOSX) or PATH (Windows) need to contain $GISBASE/lib, although there are other means to the same end (e.g. on Linux, putting $GISBASE/lib (with $GISBASE replaced by its actual value) into /etc/ld.so.conf then running ldconfig). Some libraries and modules use other variables. See the file $GISBASE/docs/html/variables.html for most of them (the display libraries used by d.* commands use additional variables, which are documented along with the individual drivers). Personally, I have the following run from my ~/.bash_profile script: export GISBASE=/usr/local/src/grass/svn/dist.i686-pc-linux-gnu export GRASS_GNUPLOT='gnuplot -persist' export GRASS_WIDTH=640 export GRASS_HEIGHT=480 export GRASS_HTML_BROWSER=firefox export GRASS_PAGER=cat export GRASS_WISH=wish export GRASS_PYTHON=python export GRASS_MESSAGE_FORMAT=silent export GRASS_TRUECOLOR=TRUE export GRASS_TRANSPARENT=TRUE export GRASS_PNG_AUTO_WRITE=TRUE export PATH="$GISBASE/bin:$GISBASE/scripts:$PATH" export LD_LIBRARY_PATH="$GISBASE/lib" export GRASS_LD_LIBRARY_PATH="$LD_LIBRARY_PATH" export PYTHONPATH="$GISBASE/etc/python:$PYTHONPATH" export MANPATH=$MANPATH:$GISBASE/man export GIS_LOCK=$$ export GRASS_VERSION="7.0.svn" tmp=/tmp/grass6-"`whoami`"-$GIS_LOCK export GISRC="$tmp/gisrc" mkdir "$tmp" cp ~/.grassrc6 "$GISRC" This allows GRASS commands to be used anywhere (my ~/.Xsession sources the bash startup scripts, so the settings aren't limited to interactive shells, but also work for e.g. M-! in XEmacs). Each interactive shell gets a separate "session" (i.e. a separate $GISRC file), while GUI programs share a common session. The above is for GRASS 7, and uses the version from the dist.<arch> directory in the GRASS source tree rather than an installed version. The only time I ever start GRASS explicitly is if I need to test changes to the startup scripts, or test a 6.x version. -- Glynn Clements <gl...@gclements.plus.com> _______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user