Running napari headlessly¶
Running napari headlessly (without opening a napari GUI interface) may be desired for some users, for example to run batch analysis via a CLI.
Headless mode can be achieved by not showing the viewer:
viewer = napari.Viewer(show=False) # or directly creating a ViewerModel instance viewer_model = napari.components.ViewerModel()
napari.Viewer(show=False) will not prevent
Qt from being imported. This can crash the napari application as on creation
of QApplication, if Qt cannot connect to display it will abort the application.
One way around this is to ensure that QtPy or any of the Qt backends are not
installed. Another option is to set the environment variable:
QT_QPA_PLATFORM=offscreen in the environment. This tells Qt backend that
rendering should be done offscreen.
Alternatively, any of the lower level napari components such as
Layer could be directly used, which would not start a napari viewer.