napari: conda-forge napari with pyside2 backend on macOS arm64 is broken
🐛 Bug
Installing conda-forge napari with the pyside2 backend (which occurred when making an env with stardist-napari) results in an error when opening any sample image:
AttributeError: 'CanvasBackendDesktop' object has no attribute 'defaultFramebufferObject'
Not sure why stardist-napari
conda-forge package ended up pulling pyside2 napari, because mamba install napari
yields the pyqt backend.
Traceback:
WARNING: Error drawing visual <Image at 0x169e63940>
19:55:26 WARNING Error drawing visual <Image at 0x169e63940>
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/app/backends/_qt.py:903, in CanvasBackendDesktop.paintGL(self=<vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80)>)
901 # (0, 0, self.width(), self.height()))
902 self._vispy_canvas.set_current()
--> 903 self._vispy_canvas.events.draw(region=None)
self._vispy_canvas = <VispyCanvas (PySide2) at 0x15001a550>
self._vispy_canvas.events.draw = <vispy.util.event.EventEmitter object at 0x150033d90>
self = <vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80) at 0x150040600>
self._vispy_canvas.events = <vispy.util.event.EmitterGroup object at 0x150033d30>
905 # Clear the alpha channel with QOpenGLWidget (Qt >= 5.4), otherwise the
906 # window is translucent behind non-opaque objects.
907 # Reference: MRtrix3/mrtrix3#266
908 if QT5_NEW_API or PYSIDE6_API or PYQT6_API:
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/util/event.py:453, in EventEmitter.__call__(self=<vispy.util.event.EventEmitter object>, *args=(), **kwargs={'region': None})
450 if self._emitting > 1:
451 raise RuntimeError('EventEmitter loop detected!')
--> 453 self._invoke_callback(cb, event)
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
self = <vispy.util.event.EventEmitter object at 0x150033d90>
cb = <bound method SceneCanvas.on_draw of <VispyCanvas (PySide2) at 0x15001a550>>
454 if event.blocked:
455 break
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/util/event.py:471, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method SceneCanvas.on_draw of <VispyCanvas (PySide2)>>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
469 cb(event)
470 except Exception:
--> 471 _handle_exception(self.ignore_callback_errors,
self = <vispy.util.event.EventEmitter object at 0x150033d90>
cb = <bound method SceneCanvas.on_draw of <VispyCanvas (PySide2) at 0x15001a550>>
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
(cb, event) = (<bound method SceneCanvas.on_draw of <VispyCanvas (PySide2) at 0x15001a550>>, <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
472 self.print_callback_errors,
473 self, cb_event=(cb, event))
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/util/event.py:469, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method SceneCanvas.on_draw of <VispyCanvas (PySide2)>>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
467 def _invoke_callback(self, cb, event):
468 try:
--> 469 cb(event)
cb = <bound method SceneCanvas.on_draw of <VispyCanvas (PySide2) at 0x15001a550>>
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
470 except Exception:
471 _handle_exception(self.ignore_callback_errors,
472 self.print_callback_errors,
473 self, cb_event=(cb, event))
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/scene/canvas.py:218, in SceneCanvas.on_draw(self=<VispyCanvas (PySide2)>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
215 # Now that a draw event is going to be handled, open up the
216 # scheduling of further updates
217 self._update_pending = False
--> 218 self._draw_scene()
self = <VispyCanvas (PySide2) at 0x15001a550>
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/scene/canvas.py:277, in SceneCanvas._draw_scene(self=<VispyCanvas (PySide2)>, bgcolor=<class 'numpy.ndarray'> (4,) float32)
275 bgcolor = self._bgcolor
276 self.context.clear(color=bgcolor, depth=True)
--> 277 self.draw_visual(self.scene)
self = <VispyCanvas (PySide2) at 0x15001a550>
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/scene/canvas.py:315, in SceneCanvas.draw_visual(self=<VispyCanvas (PySide2)>, visual=<SubScene>, event=None)
313 else:
314 if hasattr(node, 'draw'):
--> 315 node.draw()
node = <Image at 0x169e63940>
316 prof.mark(str(node))
317 else:
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/scene/visuals.py:103, in VisualNode.draw(self=<Image>)
101 if self.picking and not self.interactive:
102 return
--> 103 self._visual_superclass.draw(self)
self = <Image at 0x169e63940>
self._visual_superclass = <class 'vispy.visuals.image.ImageVisual'>
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/visuals/visual.py:451, in Visual.draw(self=<Image>)
449 self._configure_gl_state()
450 try:
--> 451 self._program.draw(self._vshare.draw_mode,
self._vshare.draw_mode = 'triangles'
self = <Image at 0x169e63940>
self._vshare = <vispy.visuals.visual.VisualShare object at 0x169e80a00>
self._program = <vispy.visuals.shaders.program.ModularProgram object at 0x169ea2610>
self._vshare.index_buffer = None
452 self._vshare.index_buffer)
453 except Exception:
454 logger.warning("Error drawing visual %r" % self)
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/visuals/shaders/program.py:102, in ModularProgram.draw(self=<vispy.visuals.shaders.program.ModularProgram object>, *args=('triangles', None), **kwargs={})
100 self.build_if_needed()
101 self.update_variables()
--> 102 Program.draw(self, *args, **kwargs)
self = <vispy.visuals.shaders.program.ModularProgram object at 0x169ea2610>
args = ('triangles', None)
kwargs = {}
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/gloo/program.py:526, in Program.draw(self=<vispy.visuals.shaders.program.ModularProgram object>, mode='triangles', indices=None, check_error=True)
522 raise TypeError("Invalid index: %r (must be IndexBuffer)" %
523 indices)
525 # Process GLIR commands
--> 526 canvas.context.flush_commands()
canvas = <VispyCanvas (PySide2) at 0x15001a550>
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/gloo/context.py:168, in GLContext.flush_commands(self=<GLContext>, event=None)
166 canvas = get_current_canvas()
167 if canvas and hasattr(canvas, '_backend'):
--> 168 fbo = canvas._backend._vispy_get_fb_bind_location()
canvas = <VispyCanvas (PySide2) at 0x15001a550>
canvas._backend = <vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80) at 0x150040600>
169 else:
170 fbo = 0
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/app/backends/_qt.py:875, in CanvasBackendDesktop._vispy_get_fb_bind_location(self=<vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80)>)
873 def _vispy_get_fb_bind_location(self):
874 if QT5_NEW_API or PYSIDE6_API or PYQT6_API:
--> 875 return self.defaultFramebufferObject()
self = <vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80) at 0x150040600>
876 else:
877 return QtBaseCanvasBackend._vispy_get_fb_bind_location(self)
AttributeError: 'CanvasBackendDesktop' object has no attribute 'defaultFramebufferObject'
WARNING: Error drawing visual <Image at 0x169e63940>
19:55:27 WARNING Error drawing visual <Image at 0x169e63940>
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/app/backends/_qt.py:903, in CanvasBackendDesktop.paintGL(self=<vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80)>)
901 # (0, 0, self.width(), self.height()))
902 self._vispy_canvas.set_current()
--> 903 self._vispy_canvas.events.draw(region=None)
self._vispy_canvas = <VispyCanvas (PySide2) at 0x15001a550>
self._vispy_canvas.events.draw = <vispy.util.event.EventEmitter object at 0x150033d90>
self = <vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80) at 0x150040600>
self._vispy_canvas.events = <vispy.util.event.EmitterGroup object at 0x150033d30>
905 # Clear the alpha channel with QOpenGLWidget (Qt >= 5.4), otherwise the
906 # window is translucent behind non-opaque objects.
907 # Reference: MRtrix3/mrtrix3#266
908 if QT5_NEW_API or PYSIDE6_API or PYQT6_API:
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/util/event.py:453, in EventEmitter.__call__(self=<vispy.util.event.EventEmitter object>, *args=(), **kwargs={'region': None})
450 if self._emitting > 1:
451 raise RuntimeError('EventEmitter loop detected!')
--> 453 self._invoke_callback(cb, event)
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
self = <vispy.util.event.EventEmitter object at 0x150033d90>
cb = <bound method SceneCanvas.on_draw of <VispyCanvas (PySide2) at 0x15001a550>>
454 if event.blocked:
455 break
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/util/event.py:471, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method SceneCanvas.on_draw of <VispyCanvas (PySide2)>>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
469 cb(event)
470 except Exception:
--> 471 _handle_exception(self.ignore_callback_errors,
self = <vispy.util.event.EventEmitter object at 0x150033d90>
cb = <bound method SceneCanvas.on_draw of <VispyCanvas (PySide2) at 0x15001a550>>
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
(cb, event) = (<bound method SceneCanvas.on_draw of <VispyCanvas (PySide2) at 0x15001a550>>, <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
472 self.print_callback_errors,
473 self, cb_event=(cb, event))
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/util/event.py:469, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method SceneCanvas.on_draw of <VispyCanvas (PySide2)>>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
467 def _invoke_callback(self, cb, event):
468 try:
--> 469 cb(event)
cb = <bound method SceneCanvas.on_draw of <VispyCanvas (PySide2) at 0x15001a550>>
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
470 except Exception:
471 _handle_exception(self.ignore_callback_errors,
472 self.print_callback_errors,
473 self, cb_event=(cb, event))
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/scene/canvas.py:218, in SceneCanvas.on_draw(self=<VispyCanvas (PySide2)>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
215 # Now that a draw event is going to be handled, open up the
216 # scheduling of further updates
217 self._update_pending = False
--> 218 self._draw_scene()
self = <VispyCanvas (PySide2) at 0x15001a550>
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/scene/canvas.py:277, in SceneCanvas._draw_scene(self=<VispyCanvas (PySide2)>, bgcolor=<class 'numpy.ndarray'> (4,) float32)
275 bgcolor = self._bgcolor
276 self.context.clear(color=bgcolor, depth=True)
--> 277 self.draw_visual(self.scene)
self = <VispyCanvas (PySide2) at 0x15001a550>
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/scene/canvas.py:315, in SceneCanvas.draw_visual(self=<VispyCanvas (PySide2)>, visual=<SubScene>, event=None)
313 else:
314 if hasattr(node, 'draw'):
--> 315 node.draw()
node = <Image at 0x169e63940>
316 prof.mark(str(node))
317 else:
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/scene/visuals.py:103, in VisualNode.draw(self=<Image>)
101 if self.picking and not self.interactive:
102 return
--> 103 self._visual_superclass.draw(self)
self = <Image at 0x169e63940>
self._visual_superclass = <class 'vispy.visuals.image.ImageVisual'>
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/visuals/visual.py:451, in Visual.draw(self=<Image>)
449 self._configure_gl_state()
450 try:
--> 451 self._program.draw(self._vshare.draw_mode,
self._vshare.draw_mode = 'triangles'
self = <Image at 0x169e63940>
self._vshare = <vispy.visuals.visual.VisualShare object at 0x169e80a00>
self._program = <vispy.visuals.shaders.program.ModularProgram object at 0x169ea2610>
self._vshare.index_buffer = None
452 self._vshare.index_buffer)
453 except Exception:
454 logger.warning("Error drawing visual %r" % self)
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/visuals/shaders/program.py:102, in ModularProgram.draw(self=<vispy.visuals.shaders.program.ModularProgram object>, *args=('triangles', None), **kwargs={})
100 self.build_if_needed()
101 self.update_variables()
--> 102 Program.draw(self, *args, **kwargs)
self = <vispy.visuals.shaders.program.ModularProgram object at 0x169ea2610>
args = ('triangles', None)
kwargs = {}
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/gloo/program.py:526, in Program.draw(self=<vispy.visuals.shaders.program.ModularProgram object>, mode='triangles', indices=None, check_error=True)
522 raise TypeError("Invalid index: %r (must be IndexBuffer)" %
523 indices)
525 # Process GLIR commands
--> 526 canvas.context.flush_commands()
canvas = <VispyCanvas (PySide2) at 0x15001a550>
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/gloo/context.py:168, in GLContext.flush_commands(self=<GLContext>, event=None)
166 canvas = get_current_canvas()
167 if canvas and hasattr(canvas, '_backend'):
--> 168 fbo = canvas._backend._vispy_get_fb_bind_location()
canvas = <VispyCanvas (PySide2) at 0x15001a550>
canvas._backend = <vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80) at 0x150040600>
169 else:
170 fbo = 0
File ~/Dev/miniforge3/envs/test-env2/lib/python3.9/site-packages/vispy/app/backends/_qt.py:875, in CanvasBackendDesktop._vispy_get_fb_bind_location(self=<vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80)>)
873 def _vispy_get_fb_bind_location(self):
874 if QT5_NEW_API or PYSIDE6_API or PYQT6_API:
--> 875 return self.defaultFramebufferObject()
self = <vispy.app.backends._qt.CanvasBackendDesktop(0x600003ef6d80) at 0x150040600>
876 else:
877 return QtBaseCanvasBackend._vispy_get_fb_bind_location(self)
AttributeError: 'CanvasBackendDesktop' object has no attribute 'defaultFramebufferObject'
To Reproduce
Steps to reproduce the behavior:
mamba create --name test-env3 python=3.9 "napari=*=*pyside2*"
- Try to open a sample image or
viewer.add_image(np.random.rand(10,10))
- Any click on canvas will chain trigger the error.
Expected behavior
Open images with no issues.
Environment
Fresh conda env.
napari: 0.4.16
Platform: macOS-12.6-arm64-arm-64bit
System: MacOS 12.6
Python: 3.9.13 | packaged by conda-forge | (main, May 27 2022, 17:00:33) [Clang 13.0.1 ]
Qt: 5.15.6
PySide2: 5.15.6
NumPy: 1.23.3
SciPy: 1.9.1
Dask: 2022.10.0
VisPy: 0.10.0
OpenGL:
- GL version: 2.1 Metal - 76.3
- MAX_TEXTURE_SIZE: 16384
Screens:
- screen 1: resolution 1680x1050, scale 2.0
Plugins:
- console: 0.0.6
- napari-svg: 0.1.6
- scikit-image: 0.4.16
Full env:
╰─ conda list (test-env3) ─╯
# packages in environment at /Users/piotrsobolewski/Dev/miniforge3/envs/test-env3:
#
# Name Version Build Channel
alabaster 0.7.12 py_0 conda-forge
aom 3.5.0 h7ea286d_0 conda-forge
appdirs 1.4.4 pyh9f0ad1d_0 conda-forge
appnope 0.1.3 pyhd8ed1ab_0 conda-forge
asciitree 0.3.3 py_2 conda-forge
asttokens 2.0.8 pyhd8ed1ab_0 conda-forge
attrs 22.1.0 pyh71513ae_1 conda-forge
babel 2.10.3 pyhd8ed1ab_0 conda-forge
backcall 0.2.0 pyh9f0ad1d_0 conda-forge
backports 1.0 py_2 conda-forge
backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge
blosc 1.21.1 hd414afc_3 conda-forge
bokeh 2.4.3 pyhd8ed1ab_3 conda-forge
brotli 1.0.9 h1c322ee_7 conda-forge
brotli-bin 1.0.9 h1c322ee_7 conda-forge
brotlipy 0.7.0 py39hb18efdd_1004 conda-forge
brunsli 0.1 h9f76cd9_0 conda-forge
bzip2 1.0.8 h3422bc3_4 conda-forge
c-ares 1.18.1 h3422bc3_0 conda-forge
c-blosc2 2.4.2 h303ed30_0 conda-forge
ca-certificates 2022.9.24 h4653dfc_0 conda-forge
cachey 0.2.1 pyh9f0ad1d_0 conda-forge
certifi 2022.9.24 pyhd8ed1ab_0 conda-forge
cffi 1.15.1 py39h04d3946_0 conda-forge
cfitsio 4.1.0 hd4f5c17_0 conda-forge
charls 2.3.4 hbdafb3b_0 conda-forge
charset-normalizer 2.1.1 pyhd8ed1ab_0 conda-forge
click 8.1.3 py39h2804cbe_0 conda-forge
cloudpickle 2.2.0 pyhd8ed1ab_0 conda-forge
colorama 0.4.5 pyhd8ed1ab_0 conda-forge
commonmark 0.9.1 py_0 conda-forge
cryptography 38.0.2 py39haa0b8cc_0 conda-forge
cytoolz 0.12.0 py39h9eb174b_0 conda-forge
dask 2022.10.0 pyhd8ed1ab_0 conda-forge
dask-core 2022.10.0 pyhd8ed1ab_0 conda-forge
dataclasses 0.8 pyhc8e2a94_3 conda-forge
dav1d 1.0.0 he4db4b2_1 conda-forge
debugpy 1.6.3 py39h3c22d25_0 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
distributed 2022.10.0 pyhd8ed1ab_0 conda-forge
docstring_parser 0.13 pyhd8ed1ab_0 conda-forge
docutils 0.19 py39h2804cbe_0 conda-forge
entrypoints 0.4 pyhd8ed1ab_0 conda-forge
executing 1.1.1 pyhd8ed1ab_0 conda-forge
expat 2.4.9 hb7217d7_0 conda-forge
fasteners 0.17.3 pyhd8ed1ab_0 conda-forge
font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge
font-ttf-inconsolata 3.000 h77eed37_0 conda-forge
font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge
font-ttf-ubuntu 0.83 hab24e00_0 conda-forge
fontconfig 2.14.0 h82840c6_1 conda-forge
fonts-conda-ecosystem 1 0 conda-forge
fonts-conda-forge 1 0 conda-forge
freetype 2.12.1 hd633e50_0 conda-forge
freetype-py 2.3.0 pyhd8ed1ab_0 conda-forge
fsspec 2022.8.2 pyhd8ed1ab_0 conda-forge
future 0.18.2 py39h2804cbe_5 conda-forge
gettext 0.21.1 h0186832_0 conda-forge
giflib 5.2.1 h27ca646_2 conda-forge
glib 2.74.0 hb5ab8b9_0 conda-forge
glib-tools 2.74.0 hb5ab8b9_0 conda-forge
gst-plugins-base 1.20.3 h8b7775e_2 conda-forge
gstreamer 1.20.3 hcb7b3dd_2 conda-forge
heapdict 1.0.1 py_0 conda-forge
hsluv 5.0.2 pyh44b312d_0 conda-forge
icu 70.1 h6b3803e_0 conda-forge
idna 3.4 pyhd8ed1ab_0 conda-forge
imagecodecs 2022.9.26 py39hca81624_1 conda-forge
imageio 2.22.0 pyhfa7a67d_0 conda-forge
imagesize 1.4.1 pyhd8ed1ab_0 conda-forge
importlib-metadata 4.11.4 py39h2804cbe_0 conda-forge
importlib_resources 5.10.0 pyhd8ed1ab_0 conda-forge
ipykernel 6.16.0 pyh736e0ef_0 conda-forge
ipython 8.5.0 pyhd1c38e8_1 conda-forge
ipython_genutils 0.2.0 py_1 conda-forge
jedi 0.18.1 pyhd8ed1ab_2 conda-forge
jinja2 3.1.2 pyhd8ed1ab_1 conda-forge
jpeg 9e he4db4b2_2 conda-forge
jsonschema 4.16.0 pyhd8ed1ab_0 conda-forge
jupyter_client 7.3.4 pyhd8ed1ab_0 conda-forge
jupyter_core 4.11.1 py39h2804cbe_0 conda-forge
jxrlib 1.1 h27ca646_2 conda-forge
kiwisolver 1.4.4 py39hab5e169_0 conda-forge
krb5 1.19.3 hf9b2bbe_0 conda-forge
lcms2 2.12 had6a04f_0 conda-forge
lerc 4.0.0 h9a09cb3_0 conda-forge
libaec 1.0.6 hbdafb3b_0 conda-forge
libavif 0.11.0 h3d80962_0 conda-forge
libblas 3.9.0 16_osxarm64_openblas conda-forge
libbrotlicommon 1.0.9 h1c322ee_7 conda-forge
libbrotlidec 1.0.9 h1c322ee_7 conda-forge
libbrotlienc 1.0.9 h1c322ee_7 conda-forge
libcblas 3.9.0 16_osxarm64_openblas conda-forge
libclang 14.0.6 default_h81a5282_0 conda-forge
libclang13 14.0.6 default_he70ec0d_0 conda-forge
libcurl 7.85.0 hd538317_0 conda-forge
libcxx 14.0.6 h2692d47_0 conda-forge
libdeflate 1.14 h1a8c8d9_0 conda-forge
libedit 3.1.20191231 hc8eb9b7_2 conda-forge
libev 4.33 h642e427_1 conda-forge
libffi 3.4.2 h3422bc3_5 conda-forge
libgfortran 5.0.0 11_3_0_hd922786_25 conda-forge
libgfortran5 11.3.0 hdaf2cc0_25 conda-forge
libglib 2.74.0 h14ed1c1_0 conda-forge
libiconv 1.17 he4db4b2_0 conda-forge
liblapack 3.9.0 16_osxarm64_openblas conda-forge
libllvm14 14.0.6 h37c5ba8_0 conda-forge
libnghttp2 1.47.0 h232270b_1 conda-forge
libogg 1.3.4 h27ca646_1 conda-forge
libopenblas 0.3.21 openmp_hc731615_3 conda-forge
libopus 1.3.1 h27ca646_1 conda-forge
libpng 1.6.38 h76d750c_0 conda-forge
libpq 14.5 hb2ab832_0 conda-forge
libsodium 1.0.18 h27ca646_1 conda-forge
libsqlite 3.39.4 h76d750c_0 conda-forge
libssh2 1.10.0 hb80f160_3 conda-forge
libtiff 4.4.0 hfa0b094_4 conda-forge
libvorbis 1.3.7 h9f76cd9_0 conda-forge
libwebp 1.2.4 h328b37c_0 conda-forge
libwebp-base 1.2.4 h57fd34a_0 conda-forge
libxcb 1.13 h9b22ae9_1004 conda-forge
libxml2 2.10.3 h87b0503_0 conda-forge
libxslt 1.1.35 ha8fb468_0 conda-forge
libzlib 1.2.13 h03a7124_4 conda-forge
libzopfli 1.0.3 h9f76cd9_0 conda-forge
llvm-openmp 14.0.4 hd125106_0 conda-forge
locket 1.0.0 pyhd8ed1ab_0 conda-forge
lz4 4.0.0 py39h049b86e_2 conda-forge
lz4-c 1.9.3 hbdafb3b_1 conda-forge
magicgui 0.5.1 pyhd8ed1ab_0 conda-forge
markupsafe 2.1.1 py39hb18efdd_1 conda-forge
matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge
msgpack-python 1.0.4 py39hab5e169_0 conda-forge
mysql-common 8.0.31 hab468bb_0 conda-forge
mysql-libs 8.0.31 hea58576_0 conda-forge
napari 0.4.16 pyh92c539f_0_pyside2 conda-forge
napari-console 0.0.6 pyhd8ed1ab_0 conda-forge
napari-plugin-engine 0.2.0 pyhd8ed1ab_2 conda-forge
napari-svg 0.1.6 pyhd8ed1ab_0 conda-forge
ncurses 6.3 h07bb92c_1 conda-forge
nest-asyncio 1.5.6 pyhd8ed1ab_0 conda-forge
networkx 2.8.7 pyhd8ed1ab_0 conda-forge
npe2 0.6.1 pyhd8ed1ab_1 conda-forge
nspr 4.32 hbdafb3b_1 conda-forge
nss 3.78 h1483a63_0 conda-forge
numcodecs 0.10.2 py39h3c22d25_0 conda-forge
numpy 1.23.3 py39hcb4b507_0 conda-forge
numpydoc 1.5.0 pyhd8ed1ab_0 conda-forge
openjpeg 2.5.0 h5d4e404_1 conda-forge
openssl 1.1.1q ha287fd2_0 conda-forge
packaging 21.3 pyhd8ed1ab_0 conda-forge
pandas 1.5.0 py39hde7b980_0 conda-forge
parso 0.8.3 pyhd8ed1ab_0 conda-forge
partd 1.3.0 pyhd8ed1ab_0 conda-forge
pcre2 10.37 hcf5f1cc_1 conda-forge
pep517 0.12.0 py39h2804cbe_2 conda-forge
pexpect 4.8.0 pyh9f0ad1d_2 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pillow 9.2.0 py39he45c975_2 conda-forge
pint 0.19.2 pyhd8ed1ab_0 conda-forge
pip 22.3 pyhd8ed1ab_0 conda-forge
pkgutil-resolve-name 1.3.10 pyhd8ed1ab_0 conda-forge
pooch 1.6.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.31 pyha770c72_0 conda-forge
psutil 5.9.2 py39h02fc5c5_0 conda-forge
psygnal 0.5.0 py39haaf3ac1_0 conda-forge
pthread-stubs 0.4 h27ca646_1001 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pydantic 1.10.2 py39h02fc5c5_0 conda-forge
pygments 2.13.0 pyhd8ed1ab_0 conda-forge
pyopengl 3.1.6 pyhd8ed1ab_1 conda-forge
pyopenssl 22.1.0 pyhd8ed1ab_0 conda-forge
pyparsing 3.0.9 pyhd8ed1ab_0 conda-forge
pyrsistent 0.18.1 py39hb18efdd_1 conda-forge
pyside2 5.15.6 py39hf5e3978_2 conda-forge
pysocks 1.7.1 pyha2e5f31_6 conda-forge
python 3.9.13 hc596b02_0_cpython conda-forge
python-build 0.8.0 pyhd8ed1ab_0 conda-forge
python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge
python_abi 3.9 2_cp39 conda-forge
pytomlpp 1.0.11 py39h2c803a9_0 conda-forge
pytz 2022.4 pyhd8ed1ab_0 conda-forge
pywavelets 1.3.0 py39h43ea957_1 conda-forge
pyyaml 6.0 py39hb18efdd_4 conda-forge
pyzmq 24.0.1 py39h0553236_0 conda-forge
qt-main 5.15.6 h96bf0dc_0 conda-forge
qt-webengine 5.15.4 h43c6231_3 conda-forge
qtconsole-base 5.3.2 pyha770c72_0 conda-forge
qtpy 2.2.1 pyhd8ed1ab_0 conda-forge
readline 8.1.2 h46ed386_0 conda-forge
requests 2.28.1 pyhd8ed1ab_1 conda-forge
rich 12.6.0 pyhd8ed1ab_0 conda-forge
scikit-image 0.19.3 py39h533cade_1 conda-forge
scipy 1.9.1 py39h737da60_0 conda-forge
setuptools 65.5.0 pyhd8ed1ab_0 conda-forge
shellingham 1.5.0 pyhd8ed1ab_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
snappy 1.1.9 h39c3846_1 conda-forge
snowballstemmer 2.2.0 pyhd8ed1ab_0 conda-forge
sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge
sphinx 5.3.0 pyhd8ed1ab_0 conda-forge
sphinxcontrib-applehelp 1.0.2 py_0 conda-forge
sphinxcontrib-devhelp 1.0.2 py_0 conda-forge
sphinxcontrib-htmlhelp 2.0.0 pyhd8ed1ab_0 conda-forge
sphinxcontrib-jsmath 1.0.1 py_0 conda-forge
sphinxcontrib-qthelp 1.0.3 py_0 conda-forge
sphinxcontrib-serializinghtml 1.1.5 pyhd8ed1ab_2 conda-forge
sqlite 3.39.4 h2229b38_0 conda-forge
stack_data 0.5.1 pyhd8ed1ab_0 conda-forge
superqt 0.3.8 pyhd8ed1ab_0 conda-forge
tblib 1.7.0 pyhd8ed1ab_0 conda-forge
tifffile 2022.10.10 pyhd8ed1ab_0 conda-forge
tk 8.6.12 he1e0b03_0 conda-forge
tomli 2.0.1 pyhd8ed1ab_0 conda-forge
toolz 0.12.0 pyhd8ed1ab_0 conda-forge
tornado 6.1 py39hb18efdd_3 conda-forge
tqdm 4.64.1 pyhd8ed1ab_0 conda-forge
traitlets 5.4.0 pyhd8ed1ab_0 conda-forge
typer 0.6.1 pyhd8ed1ab_0 conda-forge
typing-extensions 4.4.0 hd8ed1ab_0 conda-forge
typing_extensions 4.4.0 pyha770c72_0 conda-forge
tzdata 2022e h191b570_0 conda-forge
urllib3 1.26.11 pyhd8ed1ab_0 conda-forge
vispy 0.10.0 py39h6eccaaf_0 conda-forge
wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge
wheel 0.37.1 pyhd8ed1ab_0 conda-forge
wrapt 1.14.1 py39h9eb174b_0 conda-forge
xorg-libxau 1.0.9 h27ca646_0 conda-forge
xorg-libxdmcp 1.1.3 h27ca646_0 conda-forge
xz 5.2.6 h57fd34a_0 conda-forge
yaml 0.2.5 h3422bc3_2 conda-forge
zarr 2.13.3 pyhd8ed1ab_0 conda-forge
zeromq 4.3.4 hbdafb3b_1 conda-forge
zfp 1.0.0 h7b19444_1 conda-forge
zict 2.2.0 pyhd8ed1ab_0 conda-forge
zipp 3.9.0 pyhd8ed1ab_0 conda-forge
zlib-ng 2.0.6 he4db4b2_0 conda-forge
zstd 1.5.2 h8128057_4 conda-forge
Additional context
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 28 (17 by maintainers)
core bug looks like a bug in pyside6 as a class is documented: https://doc.qt.io/qtforpython/PySide6/QtOpenGLWidgets/QOpenGLWidget.html#PySide6.QtOpenGLWidgets.PySide6.QtOpenGLWidgets.QOpenGLWidget.defaultFramebufferObject
I will try to create simple code for test it and if it will reproduce on You machine then will be case to open issue on Qt bug tracker
But your problem is connected with opengl support in this build. It may happen that PySide2 is build without proper opengl support and all non opengl examples will work.
Currently, I cannot reproduce on Linux when using pip.
Napari is broken on the last two releases of PySide6. More here #5217.