enthought/traitsui

RuntimeError: Importing from wx backend after selecting qt backend! when running traitsui/examples/tutorials/traitsui_4.0/editors/animated_gif.py

Closed this issue · 2 comments

Problem Description:
When running traitsui/examples/tutorials/traitsui_4.0/editors/animated_gif.py, a RuntimeError: Importing from wx backend after selecting qt backend! error will appear.

Replication:

python traitsui/examples/tutorials/traitsui_4.0/editors/animated_gif.py

Link to file:
https://github.com/enthought/traitsui/blob/main/examples/tutorials/traitsui_4.0/editors/animated_gif.py

Stacktrace:

Traceback (most recent call last):
  File "/Users/cyliu/Documents/traitsui/examples/tutorials/traitsui_4.0/editors/animated_gif.py", line 30, in <module>
    from traitsui.wx.animated_gif_editor import AnimatedGIFEditor
  File "/Users/cyliu/Documents/3.11_test/traitsui/traitsui/wx/__init__.py", line 19, in <module>
    from . import toolkit
  File "/Users/cyliu/Documents/3.11_test/traitsui/traitsui/wx/toolkit.py", line 20, in <module>
    assert_toolkit_import(["wx"])
  File "/Users/cyliu/Documents/3.11_test/traitsui/traitsui/toolkit.py", line 39, in assert_toolkit_import
    raise RuntimeError(
RuntimeError: Importing from wx backend after selecting qt backend!

Environment:
MacOS, python3.11

Packages:
Package Version Editable project location


apptools 5.2.0
attrdict 2.0.1
attrdict3 2.0.2
blosc2 2.0.0
celiagg 2.1.3
certifi 2022.12.7
chaco 5.1.0
charset-normalizer 3.1.0
configobj 5.0.8
cPython 0.0.6
Cython 0.29.34
dnspython 2.3.0
enable 5.4.0.dev31 /Users/cyliu/Documents/3.11_test/enable
fonttools 4.39.2
h5py 3.8.0
idna 3.4
joblib 1.2.0
msgpack 1.0.5
numexpr 2.8.4
numpy 1.24.2
packaging 23.1
pandas 1.5.3
Pillow 9.4.0
pip 23.1
py-cpuinfo 9.0.0
PyAudio 0.2.13
pyface 8.0.0 /Users/cyliu/Documents/3.11_test/pyface
pygarrayimage 1.0
pyglet 2.0.5 /Users/cyliu/Documents/3.11_test/pyglet
Pygments 2.14.0
pymongo 4.3.3
pyparsing 3.0.9
PySide6 6.4.3
PySide6-Addons 6.4.3
PySide6-Essentials 6.4.3
python-dateutil 2.8.2
pythonw 3.0.3
pytz 2023.2
reportlab 3.6.12
requests 2.28.2
scikit-learn 1.2.2
scipy 1.10.1
setuptools 65.6.3
shiboken6 6.4.3
six 1.16.0
tables 3.8.0
threadpoolctl 3.1.0
traits 6.4.1
traitsui 8.0.0.dev0 /Users/cyliu/Documents/3.11_test/traitsui
urllib3 1.26.15
wxPython 4.2.0

It looks like the error comes from https://github.com/enthought/traitsui/blob/main/traitsui/wx/toolkit.py#L20
When this line:

assert_toolkit_import(["wx"])

is removed, the error will change to wx._core.PyNoAppError: The wx.App object must be created first! like mentioned in issue #2015 . I will do a thorough test to see whether removing this line causes any more problems

After testing other traitsui demos, no demo will be broken if this line is removed. But I think we want to understand the motive behind this assert import @dpinte @corranwebster