it-swarm.com.de

pip3 error - '_NamespacePath' Objekt hat kein Attribut 'sort'

Ich habe versucht, ein Paket über Pip3 zu installieren, und ich habe diesen Fehler erhalten. Jeder pip/pip3-Befehl, den ich ausführte, gibt mir diese Fehler- 

[email protected]:~$ pip3 -V
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 7, in <module>
    from pip import main
  File "/home/alexg/.local/lib/python3.5/site-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/home/alexg/.local/lib/python3.5/site-packages/pip/utils/__init__.py", line 27, in <module>
    from pip._vendor import pkg_resources
  File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
    @_call_aside
  File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
    f(*args, **kwargs)
  File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
    dist.activate(replace=False)
  File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
    declare_namespace(pkg)
  File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
    _rebuild_mod_path(path, packageName, module)
  File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
    orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'

Ich habe versucht, pip3 install --upgrade pip setuptools anhand einiger Antworten auszuführen, aber bei jedem Pip-Befehl wird der Fehler angezeigt. Ich stecke fest und kann nichts tun.

Was könnte es verursacht haben und wie kann dies behoben werden?

Ich bin auf Ubuntu 16.04 mit Python 3.5.2

35
amadispstac

Das gleiche Problem traf ich mit Python 3.5.2 und Pip3 (9.0.1). Und ich habe es behoben, indem ich diese Problemumgehung befolge: https://github.com/pypa/setuptools/issues/885#issuecomment-307696027

Genauer gesagt habe ich die Zeile # 2121 ~ 2122 dieser Datei bearbeitet: "Sudo vim /usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py"

#orig_path.sort(key=position_in_sys_path)
#module.__path__[:] = [_normalize_cached(p) for p in orig_path]
orig_path_t = list(orig_path)
orig_path_t.sort(key=position_in_sys_path)
module.__path__[:] = [_normalize_cached(p) for p in orig_path_t]
44
jkjung13

Das Upgrade von Setuptools hat für mich funktioniert:

pip3 install --upgrade setuptools
22
Thai

Das mag seltsam klingen, weil ich dieses Problem hatte und alles versucht hatte, was in SO und GitHub-Problemen erwähnt wurde. Dann habe ich pip mit easyinstall installiert und der pip-Befehl funktioniert. Vielleicht gibt es jetzt 2 Pip-Pakete. Aber der Fehler ist weg.

easy_install pip

10
Foreever

Dies bedeutet wahrscheinlich, dass Ihre Abhängigkeiten durcheinander geraten sind.

Versuchen Sie, pip3 von Grund auf zu deinstallieren und es sollte funktionieren.

Falls dies nicht funktioniert, löschen Sie Ihre pip-Installation. In Ihrem Fall:

rm -r /home/alexg/.local/lib/python3.5/site-packages/pip/

Und um sicher zu sein, dass Sie das nächste Mal am besten mit virtuellen Umgebungen arbeiten können :)

3
adrpino

Ich habe die meisten der oben vorgeschlagenen Lösungen ausprobiert, aber nichts hat funktioniert, da pip3 völlig funktionsunfähig war. Dann stellte ich Folgendes fest: https://deeptalk.lambdalabs.com/t/trying-to-uninstall -tensorflow-or-matplotlib-pip-package-throws-attributeerror - Namespacepfad-Objekt-hat-kein-Attribut-sortieren/310

Ich denke, das ist wahrscheinlich das Problem bei den meisten von uns. Ich habe die vorgeschlagene Lösung ausprobiert und pip3 funktioniert wieder.

Für mich war die matplotlib nicht in dist-Paketen vorhanden, sondern in site-Paketen. Der Befehl, der für mich funktionierte, war also:

Sudo rm ~/.local/lib/python3.5/site-packages/matplotlib-3.0.3-py3.5-nspkg.pth

natürlich müssen Sie den obigen Pfad basierend auf Ihrer Version und Position von matplotlib ändern.

3
fraz

Ich verwende virtualenv und ein Upgrade von setuptools hat für mich nicht funktioniert. Was funktionierte, war dieser Workaround :

pip uninstall setuptools -y && pip install setuptools
1
mtlynch

versuchen -
pip install -U pip
pip install -U setuptools

wenn das Bearbeiten von __init__.py nicht hilft.

1
markroxor

Noch eine andere Antwort, aber die folgende ist die, die das Problem für mich behoben hat. Da pip kompromittiert war, konnte ich es nicht für das Upgrade selbst oder setuptools verwenden, und auch easy_install verwendete das gleiche Problem. Also habe ich versucht, pip mit Python zu installieren.

Die Antwort:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py 
pip install --upgrade setuptools
1
Dataman

Versuchen : Sudo easy_install pip und dann 

Sudo easy_install setuptools

Wahrscheinlich geschieht dies aufgrund von unordentlichen Abhängigkeiten.

0
Glnb

Ich habe das folgendermaßen behoben:

$curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

Für python2:

$python get-pip.py

Für python3:

$python3 get-pip.py

Jetzt klappt es bei mir.

0
lxy

Keiner der anderen Antworten funktionierte für mich, aber das Ausführen des Befehls follow löste folgendes Problem:

Sudo apt-get purge --auto-remove python3-pkg-resources python3-setuptools

0
Orny

Ich hatte das gleiche Problem mit Poesie. 

Laufen

poetry run pip install --upgrade pip setuptools

anstatt 

pip install --upgrade pip setuptools

das Problem behoben.

0
Kazuya Gosho

Ich hatte dieses Problem durchgehend (und habe die folgende Problemumgehung verwendet, um pip im python3-Interpreter zu verwenden). Zu meiner Überraschung hat pip nach der Deinstallation aller Versionen von numpy und der Neuinstallation der neuesten Version wieder funktioniert. Ich kann nicht genau sagen, was passiert ist, aber es könnte etwas sein, um es zu versuchen, wenn alles andere fehlgeschlagen ist.

Die Problemumgehung (zusammengesetzt aus mehreren Quellen, an die ich mich nicht erinnere) ist

  1. starte python3
  2. pip zweimal importieren (beim ersten Mal wird ein Fehler angezeigt)
  3. verwenden Sie pip.main im Interpreter

Hier ist eine Abschrift:

>>> import pip
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py",
    __import__(vendored_name, globals(), locals(), level=0)
ImportError: No module named 'pip._vendor.pkg_resources'

During handling of the above exception, another exception occurred

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 13,
    from pip.exceptions import InstallationError, CommandError, Pi
  File "/usr/lib/python3/dist-packages/pip/exceptions.py", line 6,
    from pip._vendor.six import iteritems
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", l
    vendored("pkg_resources")
  File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", l
    __import__(modulename, globals(), locals(), level=0)
                                .
                               etc
                                .
AttributeError: '_NamespacePath' object has no attribute 'sort'
>>> import pip
>>> pkgs = ['asciiplotlib']
>>> pip.main(['install'] + pkgs + ['--upgrade'])
Collecting asciiplotlib
  Using cached https://files.pythonhosted.org/packages/15/c5/46a2d
Installing collected packages: asciiplotlib
Successfully installed asciiplotlib-0.1.8
0
Moondoggy

Nachdem Sie alle Arten von Methoden ausprobiert haben, z. B. pip und setuptools neu installieren, kann das Problem immer noch nicht behoben werden. Ich folge den Anweisungen von https://github.com/pypa/pip/issues/4216#issuecomment-28634868 und nur mit einer externen Warnung. Danach deinstalliere ich matplotlib mit pip. Endlich scheint alles in Ordnung zu sein.

0
fordacre

Ich hatte das gleiche Problem und konnte keinen Befehl mit pip3 ausführen (einschließlich aller Befehle wie pip3 install --upgrade pip setuptools).

Das einzige Problem, das ich gefunden hatte, war, Python 3 (Sudo apt-get remove python3, Sudo apt-get install python3, Sudo apt install python3-pip) vollständig zu deinstallieren und erneut zu installieren.