it-swarm.com.de

pip schlägt mit AttributeError fehl: 'modul' Objekt hat kein Attribut 'wraps'

Ich bin auf Fedora. Ich habe kürzlich mein System von F20 auf F21 aktualisiert. Pip funktionierte gut auf F20, aber nach dem Upgrade auf F21 muss etwas schief gegangen sein. Pip funktioniert nicht mehr. Jedes Mal, wenn ich den Befehl pip <anything> eingebe, tritt der folgende Fehler auf:

Traceback (most recent call last):
  File "/usr/bin/pip", line 7, in <module>
    from pip import main
  File "/usr/lib/python2.7/site-packages/pip/__init__.py", line 12, in <module>
    from pip.commands import commands, get_summaries, get_similar_commands
  File "/usr/lib/python2.7/site-packages/pip/commands/__init__.py", line 6, in <module>
    from pip.commands.bundle import BundleCommand
  File "/usr/lib/python2.7/site-packages/pip/commands/bundle.py", line 6, in <module>
    from pip.commands.install import InstallCommand
  File "/usr/lib/python2.7/site-packages/pip/commands/install.py", line 5, in <module>
    from pip.req import InstallRequirement, RequirementSet, parse_requirements
  File "/usr/lib/python2.7/site-packages/pip/req/__init__.py", line 3, in <module>
    from .req_install import InstallRequirement
  File "/usr/lib/python2.7/site-packages/pip/req/req_install.py", line 31, in <module>
    from pip.utils import (
  File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 59, in <module>
    def rmtree(dir, ignore_errors=False):
  File "/usr/lib/python2.7/site-packages/pip/_vendor/retrying.py", line 47, in wrap
    @six.wraps(f)
AttributeError: 'module' object has no attribute 'wraps'
18
Theja

Okay, nachdem ich alle Lösungen ausprobiert hatte, konnte ich ohne Ergebnis in Sicht gehen. Ich habe versucht zu riskieren und ein bisschen zu spielen. Dies ist möglicherweise nicht die sicherste Lösung, aber es hat für mich gut funktioniert. __Das Ergebnis von python get-pip.py ergab Folgendes:

Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages

selbst als ich pip deinstalliert hatte . Ich ging zu /usr/lib/python2.7/site-packages/, um zwei Pip-Verzeichnisse herauszufinden:pipundpip-6.0.8.dist-info. Beides sofort entfernt. Dann python get-pip.py erneut versucht. Voila! es funktionierte.

14
Theja

habe mich unter Windows mit Activestate Python Fresh Install. __ zusammengesetzt

easy_install pip==7.1.2

und dann hat es geklappt ....

7
Fruch

Verwenden Sie easy_install, um eine frühere Version von pip zu installieren

easy_install pip==7.0.2

Verwenden Sie dann pip, um die heruntergeladene Version zu installieren. In meinem Fall war dies 9.0.1

pip install pip==9.0.1
7
Devin Clark

Wenn Sie recreate eine virtuelle Umgebung, die eine andere Pip - Version enthält, können Sie sich einem solchen Szenario unterziehen:

# virtualenv /tmp/env
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.

# /tmp/env/bin/pip install --upgrade pip
(...)
Found existing installation: pip 1.5.6
  Uninstalling pip:
    Successfully uninstalled pip
Successfully installed pip

# virtualenv /tmp/env
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.

# /tmp/env/bin/pip install --upgrade pip
(...)
AttributeError: 'module' object has no attribute 'wraps'

Die Umgebung enthält jetzt die Pip-Fragmente der vorherigen Installation. Um dies zu beheben, können Sie die Option --clean verwenden:

# virtualenv --clear /tmp/env
Deleting tree /tmp/env/lib/python2.7
Not deleting /tmp/env/bin
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.

Dann löscht virtualenv den Pfad, bevor die neue Umgebung installiert wird.

Wenn Sie ein Update-Verhalten haben möchten, können Sie Virtualenv überspringen, wenn (z. B.) bin/python) vorhanden ist.

# [ ! -x /tmp/env/bin/python ] && virtualenv /tmp/env
3
Proddi

Dies trat in meiner Situation auf, nachdem ich das virtualenv-Verzeichnis (zusammen mit dem Projekt) an einen neuen Speicherort verschoben hatte. Dies hätte ich natürlich nicht tun sollen, da (beim Lesen des Dokuments) das Handbuch eindeutig einige [vollständig] fest codierte Pfade enthält in der Umwelt.

Das Löschen der Verzeichnisse bin /, include /, lib/und lib64/und das erneute Erstellen der virtualenv löste das Problem für mich.

Ich habe nach der Suche nach den vollständigen Pfaden in der Umgebung gesucht und sie repariert, aber sie überall (außer in den bin/enable * -Dateien) zu reparieren, erschien mir nicht trivial.

1

Ich bin unter Mac OS, konnte diesen Fehler jedoch durch Ausführen von mkvirtualenv --system-site-packages XXXX im Gegensatz zu mkvirtualenv XXXX beheben. 

Das Ausführen von pip install -r requirements.txt in der virtuellen Umgebung gab mir vorher AttributeError: 'module' object has no attribute 'wraps' und funktioniert nicht mehr.

0
Yuriy R