2015-03-13 14 views
14

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 gelaufen sein. Pip aufgehört zu arbeiten, tritt jedes Mal wenn ich den Befehl pip <anything> der Fehler hier ein:Pip schlägt mit AttributeError fehl: 'Modul' Objekt hat kein Attribut 'Wraps'

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' 
+0

tun Sie zwei Versionen von sechs? –

+0

Ich bin mir nicht sicher. Wie überprüfe ich das ohne "Pip-Liste"? – Theja

+0

'Pip show six', hast du versucht' pip install -U six'? –

Antwort

13

Okay, die Lösungen nach dem Versuch, aus alles, was ich ohne Ergebnis in Sicht Google konnte. Ich habe versucht, ein bisschen zu riskieren und zu spielen. Dies ist vielleicht nicht die sicherste Lösung, aber es hat für mich gut funktioniert. Sah, dass python get-pip.py in Folge:

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

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

+0

Das funktionierte auch für mich, aber ich musste das vorhandene pip-Paket aus meinem virtualenv löschen, nicht die globalen Python-dist-Pakete. – Cerin

-1

Das funktionierte:

mv /usr/lib/python2.7/site-packages/pip* ./ 
yum reinstall python-pip 
1

Diese in meiner Situation aufgetreten, nachdem ich das virtualenv Verzeichnis (zusammen mit dem Projekt) an einen neuen Standort umgezogen war, die ich sollte eindeutig nicht so getan haben (das Dokument lesen jetzt) ​​gibt das Handbuch klar an, dass einige [voll] hartcodierte Pfade in der Umgebung enthalten sind.

Löschen der bin /, include /, lib/und lib64/Verzeichnisse und dann neu erstellen der virtualenv löste das Problem für mich.

Ich habe in die Suche nach und das Reparieren der vollständigen Pfade in der Umgebung gesucht, aber es überall (außer in den bin/activate * -Dateien) zu reparieren, schien nicht trivial.

3

mir passiert auf Fenster mit Activepython frisch installieren Ich habe easy_install nur verwendet, um die pip

easy_install pip==7.1.2 

zu herabzustufen und dann war es funktioniert ....

+0

Arbeitete für mich! Vielen Dank :) –

1

Wenn Sie recreate ein virtuelles env, das eine andere Pip-Version enthält, die Sie in einem solchen Szenario ausführen können:

# 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 aus der vorherigen Installation. Um dies zu beheben, dass Sie die --clean Option verwenden können:

# 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 wird virtualenv den Weg wite, bevor es die neue Umgebung installiert.

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 
0

Ich bin auf Mac OS, konnte aber diesen Fehler beheben, indem mkvirtualenv --system-site-packages XXXX tun als zu mkvirtualenv XXXX gegenüber.

Laufen pip install -r requirements.txt in der virtuellen Umgebung gab mir AttributeError: 'module' object has no attribute 'wraps' vor und nicht mehr.

1

Verwenden easy_install eine frühere Version von pip verwenden

easy_install pip==7.0.2 

Dann installieren pip die Version, die Sie kam zu installieren nach unten aus, in meinem Fall war es 9.0.1

pip install pip==9.0.1