First of all, I wanted to use my project (RIDE) in Python 3.10 with a newer version of wxPython like 4.1.1. But the only available version on Linux is 4.0.7 (in Fedora 36 and Ubuntu 22.0.4).
I am happily using it in Fedora 36 (surprisingly), but today I tried to use it in Ubuntu, and got this weird error mentioning GIL. Searched the Web and finally found the meaning of the acronym. I actually found an interesting blog about a fix for a GIL, here.
Well, this is the output on Ubuntu 22.0.4:
~$ ride.py
Traceback (most recent call last):
File "/home/tester/.local/lib/python3.10/site-packages/robotide/application/application.py", line 77, in OnInit
self._plugin_loader.enable_plugins()
File "/home/tester/.local/lib/python3.10/site-packages/robotide/application/pluginloader.py", line 36, in enable_plugins
p.enable_on_startup()
File "/home/tester/.local/lib/python3.10/site-packages/robotide/application/pluginconnector.py", line 52, in enable_on_startup
self.enable()
File "/home/tester/.local/lib/python3.10/site-packages/robotide/application/pluginconnector.py", line 57, in enable
self._plugin.enable()
File "/home/tester/.local/lib/python3.10/site-packages/robotide/editor/__init__.py", line 64, in enable
self._show_editor()
File "/home/tester/.local/lib/python3.10/site-packages/robotide/editor/__init__.py", line 112, in _show_editor
self.add_tab(self._tab, 'Edit', allow_closing=False)
File "/home/tester/.local/lib/python3.10/site-packages/robotide/pluginapi/plugin.py", line 241, in add_tab
self.notebook.add_tab(tab, title, allow_closing)
File "/home/tester/.local/lib/python3.10/site-packages/robotide/ui/notebook.py", line 54, in add_tab
self.AddPage(tab, title.strip())
File "/usr/lib/python3/dist-packages/wx/lib/agw/aui/auibook.py", line 3575, in AddPage
return self.InsertPage(self.GetPageCount(), page, caption, select, bitmap, disabled_bitmap, control, tooltip)
File "/usr/lib/python3/dist-packages/wx/lib/agw/aui/auibook.py", line 3653, in InsertPage
self.SetSelectionToWindow(page)
File "/usr/lib/python3/dist-packages/wx/lib/agw/aui/auibook.py", line 4410, in SetSelectionToWindow
self.SetSelection(idx)
File "/usr/lib/python3/dist-packages/wx/lib/agw/aui/auibook.py", line 4357, in SetSelection
ctrl.MakeTabVisible(ctrl_idx, ctrl)
File "/usr/lib/python3/dist-packages/wx/lib/agw/aui/auibook.py", line 1843, in MakeTabVisible
if not self.IsTabVisible(tabPage, self.GetTabOffset(), dc, win):
File "/usr/lib/python3/dist-packages/wx/lib/agw/aui/auibook.py", line 1732, in IsTabVisible
self.Render(dc, wnd)
File "/usr/lib/python3/dist-packages/wx/lib/agw/aui/auibook.py", line 1601, in Render
button.rect = self._art.DrawButton(dc, wnd, button_rect, button, wx.RIGHT)
File "/usr/lib/python3/dist-packages/wx/lib/agw/aui/tabart.py", line 784, in DrawButton
rect = wx.Rect(in_rect.x + in_rect.width - bmp.GetWidth(),
TypeError: Rect(): arguments did not match any overloaded call:
overload 1: too many arguments
overload 2: argument 2 has unexpected type 'float'
overload 3: argument 1 has unexpected type 'int'
overload 4: argument 1 has unexpected type 'int'
overload 5: argument 1 has unexpected type 'int'
overload 6: argument 1 has unexpected type 'int'
OnInit returned false, exiting...
Exception ignored in atexit callback: <built-in function _wxPyCleanup>
wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at ../src/common/wincmn.cpp(477) in ~wxWindowBase(): any pushed event handlers must have been removed
Fatal Python error: PyThreadState_Get: the function must be called with the GIL held, but the GIL is released (the current Python thread state is NULL)
Python runtime state: finalizing (tstate=0x000055af362a9b00)
Current thread 0x00007f1540187000 (most recent call first):
<no Python frame>
Extension modules: wx._core, wx._stc, yaml._yaml, wx._html, wx._adv, wx._grid, psutil._psutil_linux, psutil._psutil_posix, apt_pkg (total: 9)
Aborted (core dumped)
I will try some rebbot of the machine, and maybe reinstall RIDE with sudo
.
Why don’t we have 4.1.1 for Linux ?