On Wed, Mar 4, 2015 at 10:09 PM, Rob Parsons <[email protected]> wrote:
> Thanks for the direction! > > I have successfully worked through the examples on > http://grass.osgeo.org/grass70/manuals/libpython/script_intro.html except > for the last one about adding a module interface to a script. I copied the > code into a python file named module_interface.py. After I File-> "Launch > script" and select module_interface.py, the module GUI pops up and prompts > for the raster inputs and output. But, after clicking on "Run", the script > reports the following message: > > Before the module dialog opens, you should get a dialog asking to add the script path to GRASS_ADDON_PATH. If you do it, you should be able to run the script. Did you get this dialog? Anna (Wed Mar 04 21:55:29 > 2015) > module_interface araster=el_D782_6m@PERMANENT braster=el_D783_6m@PERMANENT > output=el_r_6m > 'module_interface' is not recognized as an internal or > external command, > operable program or batch file. > (Wed Mar 04 21:55:29 2015) Command finished (0 > sec) > > Anyone seen this message? > > Rob Parsons > Raleigh NC > > > > On Sun, Mar 1, 2015 at 8:13 PM, <[email protected]> > wrote: > >> Send grass-user mailing list submissions to >> [email protected] >> >> To subscribe or unsubscribe via the World Wide Web, visit >> http://lists.osgeo.org/mailman/listinfo/grass-user >> or, via email, send a message with subject or body 'help' to >> [email protected] >> >> You can reach the person managing the list at >> [email protected] >> >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of grass-user digest..." >> >> >> Today's Topics: >> >> 1. GRASS 7.0 Running Scripts (.\GRASS GIS 7.0.0\scripts) >> (Rob Parsons) >> 2. Re: GRASS 7.0 Running Scripts (.\GRASS GIS 7.0.0\scripts) >> (Vaclav Petras) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Sun, 1 Mar 2015 19:37:59 -0500 >> From: Rob Parsons <[email protected]> >> To: [email protected] >> Subject: [GRASS-user] GRASS 7.0 Running Scripts (.\GRASS GIS >> 7.0.0\scripts) >> Message-ID: >> < >> cafvpspbh1xvpegff15hxkny0qeemueehp9bucv4fb9zgq_2...@mail.gmail.com> >> Content-Type: text/plain; charset="utf-8" >> >> Hello, >> >> How do I run scripts located in C:\Program Files (x86)\GRASS GIS >> 7.0.0\scripts? >> >> I am learning GRASS 7.0.0 on Windows 7 by converting some GRASS 6.4 shell >> scripts to GRASS 7 Python scripts (import grass.script as grass) and GRASS >> 7 PyGRASS scripts (from grass.pygrass.modules import Module). >> >> My installation is working fine. I can manually run the commands (from a >> shell script) in the "Command console" window of the "Layer Manager". For >> example, I can enter "g.region swwake_30m -p" in the "Command prompt" area >> and get the following results: >> >> >> Sun Mar 01 12:32:30 >> 2015) >> g.region swwake_30m >> -p >> projection: 99 (Lambert Conformal Conic) >> zone: 0 >> datum: nad83 >> ellipsoid: a=6378137 es=0.006694380022900787 >> north: 228500 >> south: 215000 >> west: 630000 >> east: 645000 >> nsres: 30 >> ewres: 30 >> rows: 450 >> cols: 500 >> cells: 225000 >> (Sun Mar 01 12:32:31 2015) Command finished (0 >> sec) >> >> I am using the "Pythonwin" IDE to develop the scripts (C:\Program Files >> (x86)\GRASS GIS 7.0.0\Python27\lib\site-packages\pythonwin\Pythonwin.exe). >> In the "GRASS GIS 7.0.0 GUI" Command Prompt window I type "pythonwin" and >> the IDE starts up. >> >> I have spent several days trying to understand how to create GRASS Python >> scripts and GRASS PyGRASS scripts from the online documentation( >> http://grasswiki.osgeo.org/wiki/GRASS_and_Python) and by studying the >> script samples (C:\Program Files (x86)\GRASS GIS 7.0.0\scripts). I have >> not >> been successful in getting example code to run but I am still working >> through the documentation. >> >> But, I should be able to run scripts located in C:\Program Files >> (x86)\GRASS GIS 7.0.0\scripts. >> >> Correct? >> >> 1. If I open .\scripts\d.what.rast.py in the Pythonwin IDE and try to run >> it, I get this output: >> >> OSError error(9): The handle is invalid >> Traceback (most recent call last): >> File "C:\Program Files (x86)\GRASS GIS >> >> 7.0.0\Python27\lib\site-packages\pythonwin\pywin\framework\scriptutils.py", >> line 325, in RunScript >> exec codeObject in __main__.__dict__ >> File >> >> "C:\Users\Rob\Documents\grassscripts\pygrass\make_raster_using_mapcalc.py", >> line 8, in <module> >> g.message("Filter elevation map by a threshold...") >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\etc\python\grass\pygrass\modules\shortcuts.py", line 46, in >> __getattr__ >> return self.cls('%s.%s' % (self.prefix, name.replace('_', '.'))) >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\etc\python\grass\pygrass\modules\interface\module.py", line 498, in >> __init__ >> raise GrassError(str_err % self.name) >> GrassError: Error running: `g.message --interface-description`. >> Traceback (most recent call last): >> File "C:\Program Files (x86)\GRASS GIS >> >> 7.0.0\Python27\lib\site-packages\pythonwin\pywin\framework\scriptutils.py", >> line 325, in RunScript >> exec codeObject in __main__.__dict__ >> File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py", >> line 45, in <module> >> main() >> File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py", >> line 30, in main >> options, flags = gcore.parser() >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\etc\python\grass\script\core.py", line 680, in parser >> p = subprocess.Popen([prog, '-n'] + argv, stdout=subprocess.PIPE) >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\Python27\lib\subprocess.py", >> line 703, in __init__ >> errread, errwrite) = self._get_handles(stdin, stdout, stderr) >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\Python27\lib\subprocess.py", >> line 839, in _get_handles >> p2cread = self._make_inheritable(p2cread) >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\Python27\lib\subprocess.py", >> line 878, in _make_inheritable >> _subprocess.DUPLICATE_SAME_ACCESS) >> WindowsError: [Error 6] The handle is invalid >> Traceback (most recent call last): >> File "C:\Program Files (x86)\GRASS GIS >> >> 7.0.0\Python27\lib\site-packages\pythonwin\pywin\framework\scriptutils.py", >> line 325, in RunScript >> exec codeObject in __main__.__dict__ >> File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py", >> line 45, in <module> >> main() >> File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py", >> line 30, in main >> options, flags = gcore.parser() >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\etc\python\grass\script\core.py", line 680, in parser >> p = subprocess.Popen([prog, '-n'] + argv, stdout=subprocess.PIPE) >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\Python27\lib\subprocess.py", >> line 703, in __init__ >> errread, errwrite) = self._get_handles(stdin, stdout, stderr) >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\Python27\lib\subprocess.py", >> line 839, in _get_handles >> p2cread = self._make_inheritable(p2cread) >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\Python27\lib\subprocess.py", >> line 878, in _make_inheritable >> _subprocess.DUPLICATE_SAME_ACCESS) >> WindowsError: [Error 6] The handle is invalid >> >>> >> >> 2. If I go to the "Python shell" tab on the "Layer Manager" and do File -> >> Launch Script and browse to .\scripts\d.what.rast.py, I get this output: >> >> (Sun Mar 01 12:32:31 2015) Command finished (0 >> sec) >> Launching script 'C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\ >> d.what.rast.py'... >> Traceback (most recent call last): >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\gui\wxpython\gui_core\forms.py", line 718, in OnRun >> >> gcmd.Command(cmd) >> File "C:\Program Files (x86)\GRASS GIS >> 7.0.0\gui\wxpython\core\gcmd.py", line 397, in __init__ >> >> _("Error: ") + self.__GetError())) >> core.gcmd >> . >> GException >> : >> Execution failed: 'd.what.rast map=elevation' >> Details: >> Error: >> >> Any ideas on what might be going on here? >> >> Rob Parsons >> Raleigh NC >> -------------- next part -------------- >> An HTML attachment was scrubbed... >> URL: < >> http://lists.osgeo.org/pipermail/grass-user/attachments/20150301/b41b2959/attachment-0001.html >> > >> >> ------------------------------ >> >> Message: 2 >> Date: Sun, 1 Mar 2015 20:12:57 -0500 >> From: Vaclav Petras <[email protected]> >> To: Rob Parsons <[email protected]> >> Cc: GRASS user list <[email protected]> >> Subject: Re: [GRASS-user] GRASS 7.0 Running Scripts (.\GRASS GIS >> 7.0.0\scripts) >> Message-ID: >> <CABo5uVt7hq0QnHYqzV5O949h3URGxFOAjHNLxiMx= >> [email protected]> >> Content-Type: text/plain; charset="utf-8" >> >> On Sun, Mar 1, 2015 at 7:37 PM, Rob Parsons <[email protected]> >> wrote: >> >> > Hello, >> > >> > How do I run scripts located in C:\Program Files (x86)\GRASS GIS >> > 7.0.0\scripts? >> > >> > I am learning GRASS 7.0.0 on Windows 7 by converting some GRASS 6.4 >> shell >> > scripts to GRASS 7 Python scripts (import grass.script as grass) and >> GRASS >> > 7 PyGRASS scripts (from grass.pygrass.modules import Module). >> > >> > My installation is working fine. I can manually run the commands (from a >> > shell script) in the "Command console" window of the "Layer Manager". >> For >> > example, I can enter "g.region swwake_30m -p" in the "Command prompt" >> area >> > and get the following results: >> > >> > >> > Sun Mar 01 12:32:30 >> > 2015) >> > g.region swwake_30m >> > -p >> > projection: 99 (Lambert Conformal Conic) >> > zone: 0 >> > datum: nad83 >> > ellipsoid: a=6378137 es=0.006694380022900787 >> > north: 228500 >> > south: 215000 >> > west: 630000 >> > east: 645000 >> > nsres: 30 >> > ewres: 30 >> > rows: 450 >> > cols: 500 >> > cells: 225000 >> > (Sun Mar 01 12:32:31 2015) Command finished (0 >> > sec) >> > >> > I am using the "Pythonwin" IDE to develop the scripts (C:\Program Files >> > (x86)\GRASS GIS >> 7.0.0\Python27\lib\site-packages\pythonwin\Pythonwin.exe). >> > In the "GRASS GIS 7.0.0 GUI" Command Prompt window I type "pythonwin" >> and >> > the IDE starts up. >> > >> > I have spent several days trying to understand how to create GRASS >> Python >> > scripts and GRASS PyGRASS scripts from the online documentation( >> > http://grasswiki.osgeo.org/wiki/GRASS_and_Python) and by studying the >> > script samples (C:\Program Files (x86)\GRASS GIS 7.0.0\scripts). I have >> not >> > been successful in getting example code to run but I am still working >> > through the documentation. >> > >> > Please try the example from: >> >> http://grass.osgeo.org/grass70/manuals/libpython/script_intro.html >> >> I linked this page from documentation as well as the other Python wiki >> page >> from the GRASS and Python page: >> >> http://grasswiki.osgeo.org/wiki/GRASS_Python_Scripting_Library >> >> Note that GRASS scripts by default cannot run from outside GRASS GIS >> session (environment). This is probably not emphasized enough in the >> documentation. >> >> But, I should be able to run scripts located in C:\Program Files >> > (x86)\GRASS GIS 7.0.0\scripts. >> > >> > Correct? >> > >> > Correct but can you please try some other module than a d.* module, e.g. >> r.out.xyz? d.* commands are somehow special (although in this case it >> probably doesn't matter). >> >> >> > 1. If I open .\scripts\d.what.rast.py in the Pythonwin IDE and try to >> run >> > it, I get this output: >> > >> > OSError error(9): The handle is invalid >> > Traceback (most recent call last): >> > File "C:\Program Files (x86)\GRASS GIS >> > >> 7.0.0\Python27\lib\site-packages\pythonwin\pywin\framework\scriptutils.py", >> > line 325, in RunScript >> > exec codeObject in __main__.__dict__ >> > File >> > >> "C:\Users\Rob\Documents\grassscripts\pygrass\make_raster_using_mapcalc.py", >> > line 8, in <module> >> > g.message("Filter elevation map by a threshold...") >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\etc\python\grass\pygrass\modules\shortcuts.py", line 46, in >> > __getattr__ >> > return self.cls('%s.%s' % (self.prefix, name.replace('_', '.'))) >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\etc\python\grass\pygrass\modules\interface\module.py", line 498, >> in >> > __init__ >> > raise GrassError(str_err % self.name) >> > GrassError: Error running: `g.message --interface-description`. >> > Traceback (most recent call last): >> > File "C:\Program Files (x86)\GRASS GIS >> > >> 7.0.0\Python27\lib\site-packages\pythonwin\pywin\framework\scriptutils.py", >> > line 325, in RunScript >> > exec codeObject in __main__.__dict__ >> > File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py", >> > line 45, in <module> >> > main() >> > File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py", >> > line 30, in main >> > options, flags = gcore.parser() >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\etc\python\grass\script\core.py", line 680, in parser >> > p = subprocess.Popen([prog, '-n'] + argv, stdout=subprocess.PIPE) >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\Python27\lib\subprocess.py", line 703, in __init__ >> > errread, errwrite) = self._get_handles(stdin, stdout, stderr) >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\Python27\lib\subprocess.py", line 839, in _get_handles >> > p2cread = self._make_inheritable(p2cread) >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\Python27\lib\subprocess.py", line 878, in _make_inheritable >> > _subprocess.DUPLICATE_SAME_ACCESS) >> > WindowsError: [Error 6] The handle is invalid >> > Traceback (most recent call last): >> > File "C:\Program Files (x86)\GRASS GIS >> > >> 7.0.0\Python27\lib\site-packages\pythonwin\pywin\framework\scriptutils.py", >> > line 325, in RunScript >> > exec codeObject in __main__.__dict__ >> > File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py", >> > line 45, in <module> >> > main() >> > File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py", >> > line 30, in main >> > options, flags = gcore.parser() >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\etc\python\grass\script\core.py", line 680, in parser >> > p = subprocess.Popen([prog, '-n'] + argv, stdout=subprocess.PIPE) >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\Python27\lib\subprocess.py", line 703, in __init__ >> > errread, errwrite) = self._get_handles(stdin, stdout, stderr) >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\Python27\lib\subprocess.py", line 839, in _get_handles >> > p2cread = self._make_inheritable(p2cread) >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\Python27\lib\subprocess.py", line 878, in _make_inheritable >> > _subprocess.DUPLICATE_SAME_ACCESS) >> > WindowsError: [Error 6] The handle is invalid >> > >>> >> > >> > >> >> This might be somehow related to bug in Python itself: >> >> http://bugs.python.org/issue3905 >> >> However, please focus on running the scripts for GRASS GIS from GRASS >> session. The easiest way how to do that on MS Windows is to write the >> script and then to start it from GUI (File > Run script) or from Python >> shell tab in the GUI. >> >> It is possible to run scripts which are using GRASS modules from outside >> of >> GRASS session but it requires you to set up the GRASS environment >> yourself. >> This is possible but it has some challenges. On the other hand, if you >> write your script in the way that it runs (only) in a GRASS session you >> can >> use GRASS features for automatic building of interface and thus create a >> true GRASS module. >> >> >> > 2. If I go to the "Python shell" tab on the "Layer Manager" and do File >> -> >> > Launch Script and browse to .\scripts\d.what.rast.py, I get this >> output: >> > >> > (Sun Mar 01 12:32:31 2015) Command finished (0 >> > sec) >> > Launching script 'C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\ >> > d.what.rast.py'... >> > Traceback (most recent call last): >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\gui\wxpython\gui_core\forms.py", line 718, in OnRun >> > >> > gcmd.Command(cmd) >> > File "C:\Program Files (x86)\GRASS GIS >> > 7.0.0\gui\wxpython\core\gcmd.py", line 397, in __init__ >> > >> > _("Error: ") + self.__GetError())) >> > core.gcmd >> > . >> > GException >> > : >> > Execution failed: 'd.what.rast map=elevation' >> > Details: >> > Error: >> > >> > The error message seems to be incomplete but in any case, please try >> with >> r.out.xyz script and the example script from: >> >> http://grass.osgeo.org/grass70/manuals/libpython/script_intro.html >> >> Vaclav >> >> >> > Any ideas on what might be going on here? >> > >> > Rob Parsons >> > Raleigh NC >> > >> > >> > _______________________________________________ >> > grass-user mailing list >> > [email protected] >> > http://lists.osgeo.org/mailman/listinfo/grass-user >> > >> -------------- next part -------------- >> An HTML attachment was scrubbed... >> URL: < >> http://lists.osgeo.org/pipermail/grass-user/attachments/20150301/6ff05a0b/attachment.html >> > >> >> ------------------------------ >> >> _______________________________________________ >> grass-user mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/grass-user >> >> End of grass-user Digest, Vol 107, Issue 2 >> ****************************************** >> > > > _______________________________________________ > grass-user mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/grass-user >
_______________________________________________ grass-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-user
