Pip: `pip uninstall` schlägt fehl, wenn es im Quellverzeichnis des Pakets aufgerufen wird

Erstellt am 12. Juli 2019  ·  3Kommentare  ·  Quelle: pypa/pip

Umfeld

  • Pip-Version: 19.1.1
  • Python-Version: 3.6.8
  • Betriebssystem: macOS

Beschreibung

Ich habe ein lokales Paket, spam , mit python3 -m pip install --user . installiert. Wenn ich versuche, mein Paket zu deinstallieren, wenn sich der Paketordner im aktuellen Verzeichnis befindet, erhalte ich Folgendes:

$ pwd
/Users/me/spam
$ ls
README.md  setup.cfg  setup.py  test  tox.ini  spam
$ python3 -m pip uninstall --verbose spam
Not sure how to uninstall: spam 0.0.1 - Check: /Users/me/spam  # this line only shown with --verbose flag
Can't uninstall 'spam'. No files were found to uninstall.

Die Deinstallation wird erfolgreich abgeschlossen, wenn ich sie aus einem anderen Verzeichnis ausführe:

$ cd \tmp && python3 -m pip uninstall --verbose spam
# successfully uninstalls...

Erwartetes Verhalten
Ich hatte nicht erwartet, dass uninstall empfindlich auf den Inhalt des lokalen Verzeichnisses reagiert. Wenn dies aus technischen Gründen das erwartete Verhalten ist, würde ich die stderr -Nachricht Can't uninstall 'spam'. No files were found to uninstall. so ändern, dass sie hilfreicher ist, um anzuzeigen, dass der Fehler darauf zurückzuführen sein könnte, dass es einen lokalen Ordner mit dem Namen des Zielpakets gibt.

UX UX- error messages enhancement

Hilfreichster Kommentar

@pfmoore Ich denke, Ihre bearbeitete Nachricht ist definitiv eine Verbesserung (und hätte mir etwas Zeit gespart), aber ich würde noch weiter gehen. Wie wäre es mit etwas Lehrreicherem wie Can't uninstall 'spam' (in current directory). No files were found to uninstall.\nTo uninstall 'spam' from the system library, run the same command from a directory without a 'spam' directory. (und ändern system library , wenn es einen genaueren Begriff gibt). Ist das zu ausführlich?

Es scheint, als würde jemand jemals auf diese Nachricht stoßen, wenn er in einer ähnlichen Situation wie ich wäre. Ich kann mich irren, aber das Deinstallieren aus dem aktuellen Verzeichnis wie cd path/to/site-packages && python3 -m pip uninstall spam scheint ein marginaler Anwendungsfall zu sein, und wenn jemand genug weiß, um das zu tun, dann wird eine Nachricht, die auf Mundatmer wie mich abgestimmt ist, sie nicht verwirren.

Es scheint, dass die meisten Benutzer einfach davon ausgehen – so wie ich ;-) – dass uninstall das Paket auf magische Weise in der Systembibliothek finden wird.

Alle 3 Kommentare

Vielleicht ändern Sie den Fehler in diesem Fall so, dass er Can't uninstall 'spam' (found in current directory). No files were found to uninstall. sagt?

@pfmoore Ich denke, Ihre bearbeitete Nachricht ist definitiv eine Verbesserung (und hätte mir etwas Zeit gespart), aber ich würde noch weiter gehen. Wie wäre es mit etwas Lehrreicherem wie Can't uninstall 'spam' (in current directory). No files were found to uninstall.\nTo uninstall 'spam' from the system library, run the same command from a directory without a 'spam' directory. (und ändern system library , wenn es einen genaueren Begriff gibt). Ist das zu ausführlich?

Es scheint, als würde jemand jemals auf diese Nachricht stoßen, wenn er in einer ähnlichen Situation wie ich wäre. Ich kann mich irren, aber das Deinstallieren aus dem aktuellen Verzeichnis wie cd path/to/site-packages && python3 -m pip uninstall spam scheint ein marginaler Anwendungsfall zu sein, und wenn jemand genug weiß, um das zu tun, dann wird eine Nachricht, die auf Mundatmer wie mich abgestimmt ist, sie nicht verwirren.

Es scheint, dass die meisten Benutzer einfach davon ausgehen – so wie ich ;-) – dass uninstall das Paket auf magische Weise in der Systembibliothek finden wird.

Vielleicht wäre „Ihr Computer“ besser als „Systembibliothek“?

Wiederholung Ihres Vorschlags @reynoldsnlp :

„Spam“ kann nicht deinstalliert werden (im aktuellen Verzeichnis). Es wurden keine Dateien zum Deinstallieren gefunden.\nUm „Spam“ von Ihrem Computer zu deinstallieren, führen Sie den gleichen Befehl in einem Verzeichnis aus, das kein „Spam“-Verzeichnis enthält.

Ist es klarer?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen