|
|
|
Moritz Lennert
|
On Fri, June 15, 2007 10:07, Michael Barton wrote:
> The new wxPython GRASS interface (AKA wxgrass) is pretty much equal in > functionality to the standard TclTk interface, and so is ready for regular > testing. I decided to give it a try on Windows, directly launching 'python wxgui.py' from within a grass session in cmd.exe. There were quite a few errors, of which I don't know whether they are due to the fact that this is windows (the first is) or because of path definition issues or similar specificities. In cmd.py you have the following function call on line 89: self.module = subprocess.Popen(self.cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) However, close_fds is not supported on Windows... I can solve this by setting usePopenClass = False at line 25. I then get (end of the traceback): File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\mapdisp.py", line 1313, in __init__ self.projinfo = self.Map.ProjInfo() File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\render.py", line 460, in ProjInfo p = cmd.Command(cmdlist) File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\cmd.py", line 134, in __init__ (self.cmd, wait, self.returncode)) TypeError: int argument required Line 134 is part of a debug message, so I can just comment it out (although we should try to identify the reason for the error). This then leads to the wxgrass windows opening. Whenever I try to launch a command from the menu I get something like this: File "c:\grass\grass-6.3.cvs\etc\wx\wxgui.py", line 377, in OnMenuCmd menuform.GUI().ParseCommand(cmd,gmpath, parentframe=self) File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\menuform.py", line 1110, in ParseCommand xml.sax.parseString( getInterfaceDescription( cmd ) , handler ) File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\menuform.py", line 1059, in getInterfaceDescription cmdout = p.sub( gmpath+r'/grass-interface.dtd', cmdout) File "C:\Programme\Python25\lib\re.py", line 261, in _subx template = _compile_repl(template, pattern) File "C:\Programme\Python25\lib\re.py", line 248, in _compile_repl raise error, v # invalid expression sre_constants.error: bad group name Similar error when adding a vector or raster layer: File "c:\grass\grass-6.3.cvs\etc\wx\wxgui.py", line 693, in AddRaster self.curr_page.maptree.AddLayer('raster') File "C:\GRASSSRC\gui\gui_modules\wxgui_utils.py", line 446, in AddLayer self.PropertiesDialog(layer) File "C:\GRASSSRC\gui\gui_modules\wxgui_utils.py", line 459, in PropertiesDialog menuform.GUI().ParseCommand('d.rast', gmpath, completed=(self.getOptData,layer,params), parentframe=self) File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\menuform.py", line 1110, in ParseCommand xml.sax.parseString( getInterfaceDescription( cmd ) , handler ) File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\menuform.py", line 1059, in getInterfaceDescription cmdout = p.sub( gmpath+r'/grass-interface.dtd', cmdout) File "C:\Programme\Python25\lib\re.py", line 261, in _subx template = _compile_repl(template, pattern) File "C:\Programme\Python25\lib\re.py", line 248, in _compile_repl raise error, v # invalid expression sre_constants.error: bad group name Moritz _______________________________________________ grassgui mailing list [hidden email] http://grass.itc.it/mailman/listinfo/grassgui |
||||||||||||||||
|
Michael Barton
|
Moritz,
I'm very glad you've tried this on Windows. This is very important. On 6/15/07 2:09 PM, "Moritz Lennert" <[hidden email]> wrote: > On Fri, June 15, 2007 10:07, Michael Barton wrote: >> The new wxPython GRASS interface (AKA wxgrass) is pretty much equal in >> functionality to the standard TclTk interface, and so is ready for regular >> testing. > > I decided to give it a try on Windows, directly launching 'python > wxgui.py' from within a grass session in cmd.exe. > > There were quite a few errors, of which I don't know whether they are due > to the fact that this is windows (the first is) or because of path > definition issues or similar specificities. > > In cmd.py you have the following function call on line 89: > > self.module = subprocess.Popen(self.cmd, > stdin=subprocess.PIPE, > stdout=subprocess.PIPE, > stderr=subprocess.PIPE, > close_fds=True) > > However, close_fds is not supported on Windows... > > I can solve this by setting usePopenClass = False at line 25. cmd.Command is designed primarily to pass commands through Popen. Setting usePopenClass passes all commands to popen3. This is a backup for cases where subprocess.Popen is not available, but I doubt that this has been tested much or at all. In fact, we are set up to use an independent version of subprocess, if it is not available within Python. IMHO, it would be better to deal with the close_fds argument than to reroute all commands on Windows systems through popen3. I wouldn't be surprised if this is at the bottom of the other errors you are getting. We can either dispense with close_fds or add an if clause to have a version of Popen without close_fds for Windows systems and with close_fds for the rest of the systems. Michael > > I then get (end of the traceback): > > File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\mapdisp.py", line 1313, > in __init__ > self.projinfo = self.Map.ProjInfo() > File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\render.py", line 460, in > ProjInfo > p = cmd.Command(cmdlist) > File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\cmd.py", line 134, in > __init__ > > (self.cmd, wait, self.returncode)) > TypeError: int argument required > > Line 134 is part of a debug message, so I can just comment it out > (although we should try to identify the reason for the error). This then > leads to the wxgrass windows opening. > > Whenever I try to launch a command from the menu I get something like this: > > File "c:\grass\grass-6.3.cvs\etc\wx\wxgui.py", line 377, in OnMenuCmd > menuform.GUI().ParseCommand(cmd,gmpath, parentframe=self) > File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\menuform.py", line 1110, > in ParseCommand > xml.sax.parseString( getInterfaceDescription( cmd ) , handler ) > File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\menuform.py", line 1059, > in getInterfaceDescription > cmdout = p.sub( gmpath+r'/grass-interface.dtd', cmdout) > File "C:\Programme\Python25\lib\re.py", line 261, in _subx > template = _compile_repl(template, pattern) > File "C:\Programme\Python25\lib\re.py", line 248, in _compile_repl > raise error, v # invalid expression > sre_constants.error: bad group name > > Similar error when adding a vector or raster layer: > > File "c:\grass\grass-6.3.cvs\etc\wx\wxgui.py", line 693, in AddRaster > self.curr_page.maptree.AddLayer('raster') > File "C:\GRASSSRC\gui\gui_modules\wxgui_utils.py", line 446, in AddLayer > self.PropertiesDialog(layer) > File "C:\GRASSSRC\gui\gui_modules\wxgui_utils.py", line 459, in > PropertiesDialog > menuform.GUI().ParseCommand('d.rast', gmpath, > completed=(self.getOptData,layer,params), parentframe=self) > File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\menuform.py", line 1110, > in ParseCommand > xml.sax.parseString( getInterfaceDescription( cmd ) , handler ) > File "c:\grass\grass-6.3.cvs\etc\wx\gui_modules\menuform.py", line 1059, > in getInterfaceDescription > cmdout = p.sub( gmpath+r'/grass-interface.dtd', cmdout) > File "C:\Programme\Python25\lib\re.py", line 261, in _subx > template = _compile_repl(template, pattern) > File "C:\Programme\Python25\lib\re.py", line 248, in _compile_repl > raise error, v # invalid expression > sre_constants.error: bad group name > > > Moritz > __________________________________________ Michael Barton, Professor of Anthropology School of Human Evolution & Social Change Center for Social Dynamics & Complexity Arizona State University phone: 480-965-6213 fax: 480-965-7671 www: http://www.public.asu.edu/~cmbarton _______________________________________________ grassgui mailing list [hidden email] http://grass.itc.it/mailman/listinfo/grassgui |
||||||||||||||||
| Free Embeddable Forum Powered by Nabble | Help |