[GRASS-dev] Fwd: [GRASS-user] How to embed a grass script (for example v.db.addcol) into a Pythonscript on windows?

Michael Barton Michael.Barton at asu.edu
Sat Apr 10 11:05:21 EDT 2010


We tried starting GRASS in a dos window rather than msys using the command line option. This was a big improvement. We can run basic python scripts and start an interactive python session. So now we move on to new issues about running scripts.

1) scripts that call subprocess for some reason try to import threading which tries to import "collection". Collection does not exist. Very bizarre. Could this be a parser issue?

2) scripts that attempt to import the grass_script library cannot find it. Somehow this needs to get into the path/pythonpath at startup. $GISBASE/etc/python

Getting closer to python and GRASS in Windows.

Michael
____________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity 
Professor of Anthropology, School of Human Evolution & Social Change
Arizona State University

voice: 	480-965-6262 (SHESC), 480-727-9746 (CSDC)
fax:          480-965-7671 SHESC),  480-727-0709 (CSDC)
www: www.public.asu.edu/~cmbarton, http://csdc.asu.edu









On Apr 3, 2010, at 9:17 AM, Helmut Kudrnovsky wrote:

> Hi Michael,
> 
> at the moment the WinGrass64-Installer ships it's own copy of python/wxpython (installed in C:\Program Files\GRASS-64-SVN\Python25). 
> In the starting scripts (grass64.bat, Init.bat) the path to this python-copy is set.
> 
> the wingrass-installer adds in the windows-start-menue "GRASS Command Line". this starts Grass64 in text mode in a normal Windows-console (not in rxvt), but you can start the wxgui from this Windows-console inside a grass-session by the command "g.gui wxpython".
> 
> and in this windows-console with the grass-session you have access to the wingrass-python-copy (installed in C:\Program Files\GRASS-64-SVN\Python25). for example you can start python inside a grass-session.
> 
> maybe this could be a starting point for testing python-scripting in wingrass64?
> 
> best regards
> Helmut
> 
> ---------------------
> Von: Michael Barton <Michael.Barton at asu.edu>
> Gesendet: 03.04.2010 01:14:31
> An: "Colin (Nielsen) Wren" <colin.nielsen at gmail.com>,Helmut Kudrnovsky <hellik at web.de>
> Betreff: Fwd: [GRASS-dev] Fwd: [GRASS-user] How to embed a grass script (for example v.db.addcol) into a Pythonscript on windows?
> 
> 
> Colin and Helmut,
> 
> Is there some way that these suggestions can be implemented as default behavior in GRASS for Windows, or at least as an option? It is important that we can run scripts from Windows. Unfortunately, I don't understand this completely at the moment, but hope to test it out with students to get a clearer idea of how it all works.
> 
> Michael
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ______________________________
> C. Michael Barton 
> Director, Center for Social Dynamics & Complexity
> Professor of Anthropology, School of Human Evolution & Social Change
> Arizona State University
> Tempe, AZ  85287-2402
> USA
> 
> 
> voice:  480-965-6262 (SHESC), 480-727-9746 (CSDC)
> fax:          480-965-7671(SHESC), 480-727-0709 (CSDC)
> www:  [http://csdc.asu.edu], [http://shesc.asu.edu]
> [http://www.public.asu.edu/~cmbarton]
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Begin forwarded message:
> 
> 
> 
> From: Glynn Clements <[glynn at gclements.plus.com]>
> 
> Date: April 2, 2010 3:54:22 PM MST
> 
> To: Michael Barton <[Michael.Barton at asu.edu]>
> 
> Cc: Isaac Ullah <[Isaac.Ullah at asu.edu]>, Andrea Torvinen <[atorvine at asu.edu]>, GRASS developers grass-developers <[grass-dev at lists.osgeo.org]>
> 
> Subject: Re: [GRASS-dev] Fwd: [GRASS-user] How to embed a grass script (for example v.db.addcol) into a Pythonscript on windows?
> 
> 
> 
> 
> Michael Barton wrote:
> 
> 
> OK. This helps. We were trying it in the "MSys' (broken and deprecated)
> 
> rxvt program".
> 
> 
> 
> Like I said, I'm not familiar enough with Windows to realize that this
> 
> would not work. I'm trying to help get python GRASS scripts to work
> 
> under Windows. So testing it from MSys is not the way to go. Should we
> 
> just try running a python script from the wxpython command prompt? Or
> 
> should we do it from the MSys prompt?
> 
> 
> First, I would suggest using the batch file which I posted (or
> something quite similar) to start a session using cmd.exe in a Windows
> console.
> 
> For running a *script*, it shouldn't matter whether you use rxvt or a
> console, but it will matter for running Python interactively. Using
> bash might cause problems, so it's best to avoid that at first.
> 
> 
> Is there a shebang that we should be using on Windows that is different
> 
> from the stock one (#!/usr/bin/env python). 
> 
> 
> Shebangs don't work with Windows; that's a feature of MSys' bash.
> Windows uses the extension.
> 
> If you've installed Python using the stock .msi installer from
> [python.org], it should have associated the .py extension with the
> python.file type, and the python.file type with something like:
> 
> "C:\Python26\python.exe" "%1" %*
> 
> 
> I'm looking for a cookbook approach that I can tell to students and
> 
> other who would like to use GRASS on Windows. I understand that there
> 
> are difficulties with this, but am trying to find way to make scripting
> 
> useable for people who cannot compile on Windows, but can modify batch
> 
> and other scripts. So far, we've 
> 
> 
> 
> 1) installed Python from the python site
> 
> 2) installed the GRASS binary (not the OSGeo4Win version, but the
> 
> standalone native Windows one)
> 
> 3) replaced the startup batch file with the commands you provided
> 
> 
> 
> Do we need to do something else? Do we need to start a script in a
> 
> special way (e.g., by exec-ing python first? Do we need batch files to
> 
> launch python scripts like we do for bash scripts?
> 
> 
> 1. The Python scripts need to have a .py extension.
> 2. You may need:
> 
> set PYTHONPATH=%WINGISBASE%\etc\python
> 
> as grass65.bat (etc) only sets this when invoked with -wxpython.
> 
> 
> In a related question, maybe more for Colin, does GRASS 7 work in
> 
> Windows? If so, what is the setup to allow it to run the scripts in
> 
> Python?
> 
> 
> GRASS 7 works in Windows using a similar batch file to that which I
> posted for 6.x. However, the Init.bat file needs some work. Starting
> with -wxpython doesn't work (you can start it manually via g.gui,
> though). If you start in -text mode, you'll get a couple of errors
> about the missing set_data program, but you'll end up in a session
> using the existing .grassrc7 file (provided that one exists).
> 
> -- 
> Glynn Clements <[glynn at gclements.plus.com]>
> ___________________________________________________________
> NEU: WEB.DE DSL für 19,99 EUR/mtl. und ohne Mindest-Laufzeit!
> http://produkte.web.de/go/02/



More information about the grass-dev mailing list