Repository: spyder-ide/spyder

Issue:
ModuleNotFoundError when clicking on "Connect to an existing kernel" in the Mac app
## Description

### What steps will reproduce the problem?

<!--- You can use Markdown here --->

As soon as I click on Consoles -> Connect to and existing kernel 
this pops up.

### Traceback
```python-traceback
Error initializing plugin EntryPoint(name='KWallet', value='keyring.backends.kwallet', group='keyring.backends').
Traceback (most recent call last):
  File "keyring/backend.pyc", line 202, in _load_plugins
  File "/Applications/Spyder.app/Contents/Resources/lib/python3.9/setuptools/_vendor/importlib_metadata/__init__.py", line 194, in load
  File "importlib/__init__.pyc", line 127, in import_module
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'keyring.backends.kwallet'
Error initializing plugin EntryPoint(name='SecretService', value='keyring.backends.SecretService', group='keyring.backends').
Traceback (most recent call last):
  File "keyring/backend.pyc", line 202, in _load_plugins
  File "/Applications/Spyder.app/Contents/Resources/lib/python3.9/setuptools/_vendor/importlib_metadata/__init__.py", line 194, in load
  File "importlib/__init__.pyc", line 127, in import_module
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'keyring.backends.SecretService'
Error initializing plugin EntryPoint(name='Windows', value='keyring.backends.Windows', group='keyring.backends').
Traceback (most recent call last):
  File "keyring/backend.pyc", line 202, in _load_plugins
  File "/Applications/Spyder.app/Contents/Resources/lib/python3.9/setuptools/_vendor/importlib_metadata/__init__.py", line 194, in load
  File "importlib/__init__.pyc", line 127, in import_module
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'keyring.backends.Windows'
Error initializing plugin EntryPoint(name='chainer', value='keyring.backends.chainer', group='keyring.backends').
Traceback (most recent call last):
  File "keyring/backend.pyc", line 202, in _load_plugins
  File "/Applications/Spyder.app/Contents/Resources/lib/python3.9/setuptools/_vendor/importlib_metadata/__init__.py", line 194, in load
  File "importlib/__init__.pyc", line 127, in import_module
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'keyring.backends.chainer'
Error initializing plugin EntryPoint(name='libsecret', value='keyring.backends.libsecret', group='keyring.backends').
Traceback (most recent call last):
  File "keyring/backend.pyc", line 202, in _load_plugins
  File "/Applications/Spyder.app/Contents/Resources/lib/python3.9/setuptools/_vendor/importlib_metadata/__init__.py", line 194, in load
  File "importlib/__init__.pyc", line 127, in import_module
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'keyring.backends.libsecret'
Error initializing plugin EntryPoint(name='macOS', value='keyring.backends.macOS', group='keyring.backends').
Traceback (most recent call last):
  File "keyring/backend.pyc", line 202, in _load_plugins
  File "/Applications/Spyder.app/Contents/Resources/lib/python3.9/setuptools/_vendor/importlib_metadata/__init__.py", line 194, in load
  File "importlib/__init__.pyc", line 127, in import_module
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'keyring.backends.macOS'
```

## Versions

* Spyder version: 5.4.2 93124668b (standalone)
* Python version: 3.9.14 64-bit
* Qt version: 5.15.2
* PyQt5 version: 5.15.7
* Operating System: Darwin 22.1.0

### Dependencies

```
# Mandatory:
atomicwrites >=1.2.0                 :  1.4.1 (OK)
chardet >=2.0.0                      :  5.1.0 (OK)
cloudpickle >=0.5.0                  :  2.2.0 (OK)
cookiecutter >=1.6.0                 :  2.1.1 (OK)
diff_match_patch >=20181111          :  20200713 (OK)
intervaltree >=3.0.2                 :  3.1.0 (OK)
IPython >=7.31.1;<9.0.0              :  8.8.0 (OK)
jedi >=0.17.2;<0.19.0                :  0.18.2 (OK)
jellyfish >=0.7                      :  0.9.0 (OK)
jsonschema >=3.2.0                   :  4.17.3 (OK)
keyring >=17.0.0                     :  23.13.1 (OK)
nbconvert >=4.0                      :  7.2.8 (OK)
numpydoc >=0.6.0                     :  1.5.0 (OK)
parso >=0.7.0;<0.9.0                 :  0.8.3 (OK)
pexpect >=4.4.0                      :  4.8.0 (OK)
pickleshare >=0.4                    :  0.7.5 (OK)
psutil >=5.3                         :  5.9.4 (OK)
pygments >=2.0                       :  2.14.0 (OK)
pylint >=2.5.0;<3.0                  :  2.15.10 (OK)
pylint_venv >=2.1.1                  :  None (OK)
pyls_spyder >=0.4.0                  :  0.4.0 (OK)
pylsp >=1.7.1;<1.8.0                 :  1.7.1 (OK)
pylsp_black >=1.2.0                  :  1.2.1 (OK)
qdarkstyle >=3.0.2;<3.1.0            :  3.0.3 (OK)
qstylizer >=0.2.2                    :  0.2.2 (OK)
qtawesome >=1.2.1                    :  1.2.2 (OK)
qtconsole >=5.4.0;<5.5.0             :  5.4.0 (OK)
qtpy >=2.1.0                         :  2.3.0 (OK)
rtree >=0.9.7                        :  1.0.1 (OK)
setuptools >=49.6.0                  :  66.0.0 (OK)
sphinx >=0.6.6                       :  5.1.1 (OK)
spyder_kernels >=2.4.2;<2.5.0        :  2.4.2 (OK)
textdistance >=4.2.0                 :  4.5.0 (OK)
three_merge >=0.1.1                  :  0.1.1 (OK)
watchdog >=0.10.3                    :  2.2.1 (OK)
zmq >=22.1.0                         :  24.0.1 (OK)

# Optional:
cython >=0.21                        :  0.29.33 (OK)
matplotlib >=3.0.0                   :  3.6.3 (OK)
numpy >=1.7                          :  1.24.1 (OK)
pandas >=1.1.1                       :  1.5.2 (OK)
scipy >=0.17.0                       :  1.10.0 (OK)
sympy >=0.7.3                        :  1.11.1 (OK)

# Spyder plugins:
spyder_terminal.terminalplugin 1.2.2 :  1.2.2 (OK)
```



Discussion:
Hey @atownse2, thanks for reporting. We'll try to fix this problem in our next version (5.4.3), to be released at the end of the month. In the meantime, I'm afraid there's nothing you can do about it.
@mrclary, could you take a look at this one? It seems `keyring` is not packaged correctly in our Mac app.

Resolving patch:
diff --git a/installers/macOS/packages.py b/installers/macOS/packages.py
--- a/installers/macOS/packages.py
+++ b/installers/macOS/packages.py
@@ -16,6 +16,13 @@
 humanfriendly :
     spyder-terminal plugin
     ModuleNotFoundError: No module named 'humanfriendly.tables'
+keyring:
+    ModuleNotFoundError: No module named 'keyring.backends.kwallet'
+    ModuleNotFoundError: No module named 'keyring.backends.SecretService'
+    ModuleNotFoundError: No module named 'keyring.backends.Windows'
+    ModuleNotFoundError: No module named 'keyring.backends.chainer'
+    ModuleNotFoundError: No module named 'keyring.backends.libsecret'
+    ModuleNotFoundError: No module named 'keyring.backends.macOS'
 pkg_resources:
     ImportError: The 'more_itertools' package is required; normally this is
     bundled with this package so if you get this warning, consult the
@@ -42,6 +49,7 @@
 # Packages that cannot be in the zip folder
 PACKAGES = [
     'humanfriendly',
+    'keyring',
     'pkg_resources',
     'pygments',
     'pylint_venv',


Test patch: