Hallo zusammen,

ich habe wohl Unfug mit den Python-Abhängigkeiten in meinem System angestellt. (Bis vor kurzem hatte ich hier auch testing aktiv)

Zunächst ist Spyder nicht gestartet:

 ~  spyder
Traceback (most recent call last):
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 629, in _build_master
    ws.require(__requires__)
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 966, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 827, in resolve
    dist = self._resolve_dist(
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 873, in _resolve_dist
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (spyder 5.4.2 (/home/ich/.local/lib/python3.10/site-packages), Requirement.parse('spyder==5.4.1'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/spyder", line 33, in <module>
    sys.exit(load_entry_point('spyder==5.4.1', 'gui_scripts', 'spyder')())
  File "/usr/bin/spyder", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/ich/.local/lib/python3.10/site-packages/spyder/app/start.py", line 55, in <module>
    from spyder.utils.external import lockfile
  File "/home/ich/.local/lib/python3.10/site-packages/spyder/utils/external/lockfile.py", line 31, in <module>
    from spyder.utils.programs import is_spyder_process
  File "/home/ich/.local/lib/python3.10/site-packages/spyder/utils/programs.py", line 28, in <module>
    import pkg_resources
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3324, in <module>
    def _initialize_master_working_set():
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3298, in _call_aside
    f(*args, **kwargs)
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3336, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 631, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 644, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 827, in resolve
    dist = self._resolve_dist(
  File "/home/ich/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 868, in _resolve_dist
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pydocstyle<6.3.0,>=6.2.0; extra == "all"' distribution was not found and is required by python-lsp-server

python -m pip uninstall python-lsp-server

Führte zumindest zum Start von Spyder, aber mit dem Hinweis:

You have missing dependencies!

# Mandatory:
pylsp >=1.7.1;<1.8.0 : 1.7.0 (NOK)
qdarkstyle >=3.0.2;<3.1.0 : 3.1 (NOK)

Die hab ich jetzt über pacman und pip versucht nachzuinstallieren, leider ohne Erfolg.

Ich hoffe ihr könnt mir weiterhelfen.

pip freeze                               
abydos==0.5.0
alabaster==0.7.13
anyio==3.6.2
appdirs==1.4.4
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
arrow==1.2.3
asgiref==3.6.0
astroid==2.15.0
asttokens==2.2.1
async-generator==1.10
atomicwrites==1.4.1
attrs==22.2.0
autocommand==2.2.2
autopep8==2.0.2
Babel==2.12.1
backcall==0.2.0
beautifulsoup4==4.12.0
binaryornot==0.4.4
black==23.1.0
bleach==6.0.0
btrfsutil==6.2.1
certifi==2022.12.7
cffi==1.15.1
chardet==5.1.0
charset-normalizer==3.1.0
click==8.1.3
cloudpickle==2.2.1
colorama==0.4.6
comm==0.1.3
contourpy==1.0.7
cookiecutter==2.1.1
cryptography==40.0.1
cycler==0.11.0
Cython==0.29.33
debugpy==1.6.6
decorator==5.1.1
defusedxml==0.7.1
deprecation==2.1.0
diff-match-patch==20200713
dill==0.3.6
distlib==0.3.6
Django==4.1.7
docstring-to-markdown==0.12
docutils==0.19
entrypoints==0.4
et-xmlfile==1.1.0
executing==1.2.0
fastjsonschema==2.16.3
filelock==3.10.2
flake8==6.0.0
fonttools==4.39.2
future==0.18.3
helpdev==0.7.1
idna==3.4
image==1.5.33
imagesize==1.4.1
importlib-metadata==6.1.0
inflect==6.0.2
inflection==0.5.1
iniconfig==2.0.0
intervaltree==3.1.0
ipykernel==6.22.0
ipython==8.11.0
ipython-genutils==0.2.0
isort==5.12.0
jaraco.classes==3.2.3
jaraco.context==4.3.0
jaraco.functools==3.6.0
jaraco.text==3.11.1
jarowinkler==1.2.3
jedi==0.18.2
jeepney==0.8.0
jellyfish==0.10.0
Jinja2==3.1.2
jinja2-time==0.2.0
json5==0.9.13
jsonpointer==2.3
jsonschema==4.17.3
jupyter-events==0.6.3
jupyter_client==8.1.0
jupyter_core==5.3.0
jupyter_packaging==0.12.3
jupyter_server==2.5.0
jupyterlab==3.6.2
jupyterlab-pygments==0.2.2
jupyterlab_server==2.21.0
keyring==23.13.1
kiwisolver==1.4.4
lazy-object-proxy==1.9.0
lensfun==0.3.3
Levenshtein==0.20.9
louis==3.25.0
lxml==4.9.2
markdown-it-py==2.2.0
MarkupSafe==2.1.2
matplotlib==3.7.1
matplotlib-inline==0.1.6
mccabe==0.7.0
mdurl==0.1.2
mistune==2.0.5
more-itertools==9.1.0
mypy-extensions==1.0.0
nbclient==0.7.2
nbconvert==7.2.10
nbformat==5.8.0
nest-asyncio==1.5.6
notebook_shim==0.2.2
numpy==1.24.2
numpydoc==1.5.0
opencv-python==4.7.0.72
openpyxl==3.1.2
ordered-set==4.1.0
packaging==23.0
pandas==1.5.3
pandocfilters==1.5.0
parso==0.8.3
pathspec==0.11.1
pexpect==4.8.0
pickleshare==0.7.5
Pillow==9.4.0
pip-review==1.3.0
platformdirs==3.2.0
pluggy==1.0.0
ply==3.11
prometheus-client==0.16.0
prompt-toolkit==3.0.38
proplot==0.9.7
psutil==5.9.4
ptyprocess==0.7.0
pure-eval==0.2.2
pwquality==1.4.5
pycairo==1.23.0
pycodestyle==2.10.0
pycparser==2.21
pydantic==1.10.7
pydocstyle==6.3.0
pyflakes==3.0.1
Pygments==2.14.0
PyGObject==3.44.0
pylint==2.17.1
pylint-venv==3.0.1
pyls-spyder==0.4.0
pyparsing==3.0.9
PyQt5==5.15.9
PyQt5-sip==12.11.1
PyQtWebEngine==5.15.6
pyrsistent==0.19.3
pytesseract==0.3.10
python-dateutil==2.8.2
python-json-logger==2.0.7
python-lsp-black==1.2.1
python-lsp-jsonrpc==1.0.0
python-lsp-server==1.7.0
python-slugify==8.0.1
pytoolconfig==1.2.5
pytz==2022.7.1
pyxDamerauLevenshtein==1.7.1
pyxdg==0.28
PyYAML==6.0
pyzmq==25.0.2
QDarkStyle==3.1
qstylizer==0.2.2
QtAwesome==1.2.3
qtconsole==5.4.1
QtPy==2.3.0
rapidfuzz==2.13.7
requests==2.28.2
requests-unixsocket==0.3.0
rfc3987==1.3.8
rich==13.3.2
rope==1.7.0
Rtree==1.0.1
ruamel.yaml==0.17.21
ruamel.yaml.clib==0.2.7
screen-ocr==0.4.0
SecretStorage==3.3.3
Send2Trash==1.8.0
six==1.16.0
sniffio==1.3.0
snowballstemmer==2.2.0
sortedcontainers==2.4.0
soupsieve==2.4
Sphinx==6.1.3
sphinxcontrib-applehelp==1.0.4
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
spyder==5.4.2
spyder-kernels==2.4.2
sqlparse==0.4.3
stack-data==0.6.2
team==1.0
terminado==0.17.1
tesseract==0.1.3
testpath==0.6.0
text-unidecode==1.3
textdistance==4.5.0
three-merge==0.1.1
tinycss2==1.2.1
toml==0.10.2
tomli==2.0.1
tomlkit==0.11.6
tornado==6.2
traitlets==5.9.0
trove-classifiers==2023.3.10
typing_extensions==4.5.0
uc-micro-py==1.0.1
ujson==5.7.0
urllib3==1.26.15
validate-pyproject==0.12.1
virtualenv==20.21.0
voluptuous==0.13.1
watchdog==3.0.0
wcwidth==0.2.6
webcolors==1.12
webencodings==0.5.1
websocket-client==1.5.1
websockets==10.4
whatthepatch==1.0.4
wrapt==1.15.0
wurlitzer==3.0.3
yapf==0.32.0
yt-dlp==2023.3.4
zipp==3.15.0

Bitte nie pip und pacman mixen. Für systemweite Installationen benutze besser ausschließlich pacman.

Okay, aber wie bekomme ich dann heraus, wie ein Python-Paket für pacman heißt? pylsp ist offenbar nicht python-lsp-server?
Und gibt es eine Möglichkeit, das wieder geradzubiegen? (pip Installationen aus Spyder heraus tauchen ja in der history nicht auf, bin zwar gerade über pip-date gestolpert, aber vielleicht geht es auch einfacher?)

  • Martin-MS hat auf diesen Beitrag geantwortet.

    san04 Okay, aber wie bekomme ich dann heraus, wie ein Python-Paket für pacman heißt?

    pacman -F pylsp
    community/python-lsp-server 1.7.0-1
        usr/bin/pylsp

    san04 pylsp ist offenbar nicht python-lsp-server?

    Offenbar doch

    Danke für den Hinweis.

    In den Quellen liegt dann offensichtlich python-lsp-server 1.7.0-1. Wieso möchte mein Spyder >=1.7.1 ?

    • krisz hat auf diesen Beitrag geantwortet.

      Das Paket im Repo ist flagged als out-of-date:
      https://archlinux.org/packages/community/any/python-lsp-server
      Da das schon seit dem 28.02.23 der Fall ist, hat der Paketbetreuer entweder noch keine Zeit dazu gefunden, es zu aktualisieren, oder es traten Probleme bei der Aktualisierung auf, weswegen es noch nicht freigegeben werden konnte.
      Du könntest versuchen, das Paket aus den aktuellen Quellen neu zu bauen. wenn du unbedingt die Version 1.7.1 benötigst.

      san04 Wieso möchte mein Spyder >=1.7.1

      Vermutlich weil du spyder auch mit pip und nicht mit pacman installiert hast? Das spyder Package im Arch-Repo ist noch eine ältere Version mit anderen Abhängigkeiten.

      Vielen Dank für eure Hinweise, spyder war tatsächlich über pip installiert, da hatte ich wohl nicht aufgepasst.
      Ein simples pip uninstall spyder hat auf 5.4.1 downgegraded und dann läuft es wieder rund.
      python-lsp-server 1.7.1 brauche ich nicht, daher versuche ich das neu bauen nicht und setze auf gelöst.
      Danke schön!

      Der Faden ist zwar gelöst, aber weil es Thema war: python-lsp-server ist gerade in der Version 1.7.1 ins Repo gekommen.

      Ein glücklicher Zufall. Danke für den Hinweis.