Kurztipp: Python TypeError: __init__() takes exactly 2 arguments (4 given)

Kürzliche stieß ich bei einem schon länger genutztem CentOS-System auf die folgende Fehlermeldung bei der Installation eines Python-Tools:

# python setup.py install
Traceback (most recent call last):
  File "setup.py", line 102, in 
    'katprep_snapshot=katprep.snapshot:cli',
  File "/usr/lib64/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/usr/lib64/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/lib/python2.7/site-packages/setuptools/command/develop.py", line 27, in run
    self.install_for_development()
  File "/usr/lib/python2.7/site-packages/setuptools/command/develop.py", line 129, in install_for_development
    self.process_distribution(None, self.dist, not self.no_deps)
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 701, in process_distribution
    distreq.project_name, distreq.specs, requirement.extras
TypeError: __init__() takes exactly 2 arguments (4 given)

Das zu installlierende Tool verwendet das Python-Modul setuptools zur vereinfachten Installation (easy_install). Es wurde sichergestellt, dass der Syntax des Installationsprogramms korrekt ist – auch andere Python-Tools ließen sich nicht installieren. Schlussendlich stellte sich heraus, dass durch vorherige Installationen und Deinstallationen das Python-Modul beschädigt wurde – eine Neuinstallation schaffte Abhilfe:

# yum reinstall python-setuptools

Schafft die Neuinstallation keine Abhilfe, wäre die nächste Option die Aktualisierung über die Python-Paketverwaltung:

pip install --upgrade setuptools

1 Kommentar Schreibe einen Kommentar

  1. Kleiner Hint in Richtung „easy_install“: Vor der Verwendung wird seit langem abgeraten (u.A. wegen Sicherheitsbedenken durch unverschlüsselte Verbindungen).
    Stattdessen sollte „pip“ zum Einsatz kommen.

    Gegen die Verwendung von setuptools im Paket selbst spricht nichts.

Schreibe einen Kommentar