[GRASS-user] Problems with GRASS python code in osgeo4w
Glynn Clements
glynn at gclements.plus.com
Fri Jul 10 14:19:37 EDT 2009
Moskovitz, Bob wrote:
> > 1. Ensure that .py files are configured to be run with the Python
> > interpreter. You should be able to double-click on a .py file in
> > Explorer and have it run. This should be done by the Python installer,
> > but I don't know if the OSGeo4W installer does this.
> >
> > If it isn't, you can use e.g.:
> >
> > assoc .py=python.file
> > ftype python.file="C:\Program Files\Python25\python.exe" "%1"
> >
> > [Change the pathname to wherever Python is installed.]
>
> I just wanted to update you on my progress with this problem. I still
> can't get my script to work, but I believe I know the cause of the
> problem. As you can see below I've included an email you sent related
> to setting up python file association.
>
> BTW, I did file an osgeo4w ticket:
> http://trac.osgeo.org/osgeo4w/ticket/95
>
> After looking at the ftype help, it looks like I should have issued the
> command:
> ftype python.file="C:\Program Files\Python25\python.exe" "%1" %*
You don't need the trailing %*. You do need a corresponding "assoc"
command.
> I've done that, but I still have the same problem. I created a simple
> test program that just prints out the scripts arguments:
>
> # printargs.py ############
> import sys
>
> for arg in sys.argv:
> print arg
> ###########################
>
> And here is grass session that illustration the problem:
>
> GRASS 6.4.0svn (Morgan_Hill)> assoc .py
> .py=py_auto_file
>
> GRASS 6.4.0svn (Morgan_Hill)> ftype py_auto_file
> py_auto_file="C:\OSGeo4W\bin\python.exe" "%1" %*
>
> GRASS 6.4.0svn (Morgan_Hill)> C:\Temp\printargs.py this is a test
> C:\Temp\printargs.py
>
> GRASS 6.4.0svn (Morgan_Hill)> python C:\Temp\printargs.py this is a test
> C:\Temp\printargs.py
> this
> is
> a
> test
Okay, so Python is working fine.
There have been some bugs fixed recently regarding g.parser on
Windows.
The first thing to check with a GRASS script is that "script --help"
generates the help message. If it doesn't, that indicates that either
g.parser isn't being called or it isn't being passed the script's
filename correctly.
If --help works but invoking the script with other arguments doesn't
work, that indicates that g.parser is failing to re-invoke the script.
If the script requires arguments, running the script without arguments
should bring up the GUI. Some bugs with this were fixed quite
recently, but I don't know if others remain.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-user
mailing list