diff --git a/doc/changes/devel/12628.newfeature.rst b/doc/changes/devel/12628.newfeature.rst new file mode 100644 index 00000000000..82bab838318 --- /dev/null +++ b/doc/changes/devel/12628.newfeature.rst @@ -0,0 +1,4 @@ +We added new installation variants for a full installation with the PySide6 Qt binding +(``"mne[full-pyside6]"``), with the PyQt6 binding (``"mne[full-pyqt6]"``, equivalent to +``"mne[full]"``), and without any Qt binding (``"mne[full-no-qt]"``), which may be useful +in certain situations by `Richard Höchenberger`_. diff --git a/doc/install/advanced.rst b/doc/install/advanced.rst index d22d9f7770f..d725c1ba808 100644 --- a/doc/install/advanced.rst +++ b/doc/install/advanced.rst @@ -101,6 +101,18 @@ development version of MNE-Python. If you plan to contribute to MNE-Python, or just prefer to use git rather than pip to make frequent updates, there are instructions for installing from a ``git clone`` in the :ref:`contributing`. +Choosing the Qt framework +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ``conda-forge`` version of MNE-Python ships with PyQt5. If you would like to +use a different binding, you can instead install MNE-Python via ``pip``: + +.. code-block:: console + + $ pip install "mne[full]" # uses PyQt6 + $ pip install "mne[full-pyqt6]" # same as above + $ pip install "mne[full-pyside6]" # use PySide6 + $ pip install "mne[full-no-qt]" # don't install any Qt binding .. _CUDA: diff --git a/pyproject.toml b/pyproject.toml index 04ac5dd7dad..d643c10028d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -59,11 +59,13 @@ data = [] hdf5 = ["h5io", "pymatreader"] # Dependencies for full MNE-Python functionality (other than raw/epochs export) -full = [ +# We first define a variant without any Qt bindings. The "complete" variant, mne[full], +# makes an opinionated choice and installs PyQt6. +# We also offter two more variants: mne[full-qt6] (which is equivalent to mne[full]), +# and mne[full-pyside6], which will install PySide6 instead of PyQt6. +full-no-qt = [ "mne[hdf5]", "qtpy", - "PyQt6!=6.6.0", - "PyQt6-Qt6!=6.6.0,!=6.7.0", "pyobjc-framework-Cocoa>=5.2.0; platform_system=='Darwin'", "sip", "scikit-learn", @@ -106,6 +108,10 @@ full = [ "defusedxml", "neo", ] +full = ["mne[full-no-qt]", "PyQt6!=6.6.0", "PyQt6-Qt6!=6.6.0,!=6.7.0"] +full-pyqt6 = ["mne[full]"] +full-pyside6 = ["mne[full-no-qt]", "PySide6"] + # Dependencies for running the test infrastructure test = [