Jede pip-Installation schlägt fehl wegen TypeError/metadata-generation-failed

Probleme bei der Installation?
Antworten
Fussel132
User
Beiträge: 23
Registriert: Mittwoch 13. März 2019, 13:55

Hallo allerseits,
ganz seltsames ist mir gerade unter die Nase gekommen. Ich wollte mal wieder ganz normal ein Paket via pip installieren aber aus mir unerfindlichen Gründen schlagen alle Installationen fehl. Ich kann mich nicht erinnern, irgendetwas seit der letzten Paketinstallation geändert zu haben. Neustart half leider auch nicht. Nun, egal welches Paket ich versuche zu installieren, er motzt rum.

Code: Alles auswählen

python setup.py egg_info did not run successfully
Grund dafür ist immer ein

Code: Alles auswählen

TypeError: expected string or bytes-like object
Hier ein Beispiel beim Versuch der Installation von wget:

Code: Alles auswählen

fussel@MacBook-Pro-von-Fussel ~ % pip3 install wget
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Collecting wget
  Using cached wget-3.2.zip (10 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [26 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/05/f6pg5tp96bgddbvcj5bd5qkh0000gn/T/pip-install-mo24fzs8/wget_380df1ce19414de1be80c5b791dcc2a4/setup.py", line 15, in <module>
          setup(
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 147, in setup
          _setup_distribution = dist = klass(attrs)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/dist.py", line 474, in __init__
          for ep in metadata.entry_points(group='distutils.setup_keywords'):
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 999, in entry_points
          return SelectableGroups.load(eps).select(**params)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 449, in load
          ordered = sorted(eps, key=by_group)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 996, in <genexpr>
          eps = itertools.chain.from_iterable(
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py", line 16, in unique_everseen
          k = key(element)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 931, in _normalized_name
          return self._name_from_stem(stem) or super()._normalized_name
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 600, in _normalized_name
          return Prepared.normalize(self.name)
        File "/opt/homebrew/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 855, in normalize
          return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_')
        File "/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py", line 210, in sub
          return _compile(pattern, flags).sub(repl, string, count)
      TypeError: expected string or bytes-like object
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Pip und alles war vorher kein Problem, aber von heute auf morgen geht nix mehr. Ich nutze MacOS Monterey 12.5 auf einem 2020er MacBook Pro mit M1.
Vielen Dank für Hilfe im Voraus,
Fussel
Benutzeravatar
Dennis89
User
Beiträge: 1124
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

das ist auch kein Problem von 'pip', steht sogar in der Fehlermeldung:
note: This error originates from a subprocess, and is likely not a problem with pip.
Versuchs mal so:
https://pypi.org/project/python3-wget/

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Fussel132
User
Beiträge: 23
Registriert: Mittwoch 13. März 2019, 13:55

Hm ok. Also ich habs jetzt hinbekommen. Der Fehler war, dass er anscheinend an die Methode sub von re.py (/opt/homebrew/Cellar/python@3.9/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/re.py - Zeile 203-210) ausm Framework für das Attribut "string" keinen String übergeben bekommen hat. Da das bei Python direkt im Framework ist, wollte ich die Datei nicht bearbeiten. Daher hab ich dort, wo die Funktion aufgerufen wird (/opt/homebrew/lib/python3.9/site-packages/setuptools/_vendor/importlib_metadata/__init__.py - Zeile 856) ein simples str() um "name" gemacht, wobei "name" eben die Variable ist, die sub für sein Attribut "string" übergeben bekommt. @Dennis89, an pip lag es also tatsächlich nicht, sonder vermutlich am Paket setuptools, denn schließlich trat der Fehler bei jedem Installationsversuch auch unterschiedlichster Pakete auf. Wie auch immer, nach der Modifikation von setuptools klappt es jetzt wieder! wget, eye3 und yt_dlp konnte ich endlich ohne Fehler herunterladen und installieren. Danke trotzdem!
VG Fussel

PS:
Neue Zeile 856 in __init__.py:

Code: Alles auswählen

return re.sub(r"[-_.]+", "-", str(name)).lower().replace('-', '_')
Antworten