[GRASS-user] grass7.9.dev not finding wxPython

Not long ago the latest build of grass from the github repo built and ran
just fine. Today I tried to invoke grass -- with the wxPython GUI -- and it
failed to find the widget library:

$ grass7 -gui
Starting GRASS GIS...
WARNING: GRASS GUI not found. Please check your installation.
Switching to text based interface mode.

Hit RETURN to continue.

Traceback (most recent call last):
   File "/usr/local/bin/grass7", line 2204, in <module>
     main()
   File "/usr/local/bin/grass7", line 2134, in main
     grass_gui=grass_gui)
   File "/usr/local/bin/grass7", line 1370, in lock_mapset
     ret = call([gpath("etc", "lock"), lockfile, "%d" % os.getpid()])
   File "/usr/local/bin/grass7", line 233, in call
     return subprocess.call(cmd, **kwargs)
   File "/usr/lib64/python2.7/subprocess.py", line 172, in call
     return Popen(*popenargs, **kwargs).wait()
   File "/usr/lib64/python2.7/subprocess.py", line 394, in __init__
     errread, errwrite)
   File "/usr/lib64/python2.7/subprocess.py", line 1047, in _execute_child
     raise child_exception
OSError: [Errno 2] No such file or directory

Installed here is wxPython-3.0.2.0:
/usr/doc/wxPython-3.0.2.0
/usr/include/wx-3.0/wx/wxPython

Suggestions?

Rich

On Wed, Aug 14, 2019 at 8:41 PM Rich Shepard <rshepard@appl-ecosys.com> wrote:

Not long ago the latest build of grass from the github repo built and ran
just fine. Today I tried to invoke grass -- with the wxPython GUI -- and it
failed to find the widget library:

$ grass7 -gui
Starting GRASS GIS...
WARNING: GRASS GUI not found. Please check your installation.
Switching to text based interface mode.

Hit RETURN to continue.

Traceback (most recent call last):
   File "/usr/local/bin/grass7", line 2204, in <module>
     main()
   File "/usr/local/bin/grass7", line 2134, in main
     grass_gui=grass_gui)
   File "/usr/local/bin/grass7", line 1370, in lock_mapset
     ret = call([gpath("etc", "lock"), lockfile, "%d" % os.getpid()])
   File "/usr/local/bin/grass7", line 233, in call
     return subprocess.call(cmd, **kwargs)
   File "/usr/lib64/python2.7/subprocess.py", line 172, in call

You try to use Python 2 while we require Python 3 unless you
search/replace the shebang using the find script posted some days ago.

     return Popen(*popenargs, **kwargs).wait()
   File "/usr/lib64/python2.7/subprocess.py", line 394, in __init__
     errread, errwrite)
   File "/usr/lib64/python2.7/subprocess.py", line 1047, in _execute_child
     raise child_exception
OSError: [Errno 2] No such file or directory

Installed here is wxPython-3.0.2.0:
/usr/doc/wxPython-3.0.2.0
/usr/include/wx-3.0/wx/wxPython

Suggestions?

AFAIK You miss still the standard Python 3.

Markus

On Wed, 14 Aug 2019, Markus Neteler wrote:

You try to use Python 2 while we require Python 3 unless you
search/replace the shebang using the find script posted some days ago.

Markus,

Ah, I have Python3-3.7.4 installed. I need to find where grass is calling
for python. Will search for it.

Thanks,

Rich

On Wed, 14 Aug 2019, Markus Neteler wrote:

You try to use Python 2 while we require Python 3 unless you
search/replace the shebang using the find script posted some days ago.

Markus,

Do you recall the thread with that script? I'll see if I can find it in the
mail list archive.

Rich

On Wed, 14 Aug 2019, Rich Shepard wrote:

Do you recall the thread with that script? I'll see if I can find it in the
mail list archive.

Didn't see it in the July or August gmane archives. A pointer to where to
find/change the shebank would be helpful.

Thanks,

Rich

On Wed, Aug 14, 2019 at 10:34 PM Rich Shepard <rshepard@appl-ecosys.com> wrote:

On Wed, 14 Aug 2019, Markus Neteler wrote:

> You try to use Python 2 while we require Python 3 unless you
> search/replace the shebang using the find script posted some days ago.

Markus,

Do you recall the thread with that script? I'll see if I can find it in the
mail list archive.

If you want to enforce Python 2, run

find -name '*.py' | xargs sed -i 's,#!/usr/bin/env
python3,#!/usr/bin/env python2,' && \
    sed -i 's,python3,python2,' include/Make/Platform.make.in

See: https://lists.osgeo.org/pipermail/grass-dev/2019-August/093052.html

But it is definitely NOT recommended.
Better update your machine to Python 3.

Markus

On Wed, 14 Aug 2019, Markus Neteler wrote:

If you want to enforce Python 2, run

No. I think that grass is the last application here that used python2. As I
wrote I have python3-3.7.4 installed and everything I write has been in
python3 for the last year or so.

In my configuration file I changed --with-python to --with-python3 but it
makes no difference; grass still cannot find the GUI.

Rich

On Wed, 14 Aug 2019, Rich Shepard wrote:

Not long ago the latest build of grass from the github repo built and ran
just fine. Today I tried to invoke grass -- with the wxPython GUI -- and it
failed to find the widget library:

$ grass7 -gui
Starting GRASS GIS...
WARNING: GRASS GUI not found. Please check your installation.
Switching to text based interface mode.

Let me rephrase my question: What do I change so grass_dev sees the
Python3-3.7.4 installation?

If grass no longer requires python2 I'll be happy to remove it from all
hosts.

Rich

On Wed, 14 Aug 2019, Rich Shepard wrote:

Let me rephrase my question: What do I change so grass_dev sees the
Python3-3.7.4 installation?

All fixed. I added the 64-bit specific requirements to the configuration
file and learned that the executable binary is named /usr/bin/grass79 rather
than /usr/bin/grass7 (which had worked before).

Mea culpa!

Rich