Pip: `pip uninstall` échoue lorsqu'il est appelé dans le répertoire source du paquet

Créé le 12 juil. 2019  ·  3Commentaires  ·  Source: pypa/pip

Environnement

  • version du pip : 19.1.1
  • Version Python : 3.6.8
  • Système d'exploitation : macOS

La description

J'ai installé un package local, spam , en utilisant python3 -m pip install --user . . Si j'essaie de désinstaller mon package alors que le dossier du package se trouve dans le répertoire courant, j'obtiens ceci :

$ 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.

La désinstallation se termine avec succès lorsque je l'exécute à partir d'un répertoire différent :

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

Comportement attendu
Je ne m'attendais pas à ce que uninstall soit sensible au contenu du répertoire local. Si c'est le comportement attendu pour des raisons techniques, je changerais le message $ stderr Can't uninstall 'spam'. No files were found to uninstall. pour qu'il soit plus utile pour indiquer que l'échec pourrait être dû au fait qu'il existe un dossier local avec le nom du package cible.

UX UX- error messages enhancement

Commentaire le plus utile

@pfmoore Je pense que votre message modifié est définitivement une amélioration (et m'aurait fait gagner du temps), mais j'irais encore plus loin. Qu'en est-il de quelque chose de plus instructif, comme 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. (et changez system library s'il y a un terme plus précis). C'est trop verbeux ?

Il semble que la seule fois où quelqu'un se heurterait à ce message, c'est s'il se trouvait dans une situation similaire à la mienne. Je me trompe peut-être, mais la désinstallation à partir du répertoire actuel comme cd path/to/site-packages && python3 -m pip uninstall spam semble être un cas d'utilisation marginal, et si quelqu'un en sait assez pour le faire, alors un message adapté aux respirateurs comme moi ne les confondra pas.

Il semble que la plupart des utilisateurs supposent simplement - comme moi ;-) - que uninstall va chercher par magie le paquet dans la bibliothèque système.

Tous les 3 commentaires

Peut-être modifier l'erreur dans ce cas pour dire Can't uninstall 'spam' (found in current directory). No files were found to uninstall. ?

@pfmoore Je pense que votre message modifié est définitivement une amélioration (et m'aurait fait gagner du temps), mais j'irais encore plus loin. Qu'en est-il de quelque chose de plus instructif, comme 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. (et changez system library s'il y a un terme plus précis). C'est trop verbeux ?

Il semble que la seule fois où quelqu'un se heurterait à ce message, c'est s'il se trouvait dans une situation similaire à la mienne. Je me trompe peut-être, mais la désinstallation à partir du répertoire actuel comme cd path/to/site-packages && python3 -m pip uninstall spam semble être un cas d'utilisation marginal, et si quelqu'un en sait assez pour le faire, alors un message adapté aux respirateurs comme moi ne les confondra pas.

Il semble que la plupart des utilisateurs supposent simplement - comme moi ;-) - que uninstall va chercher par magie le paquet dans la bibliothèque système.

Peut-être que "votre ordinateur" serait mieux que "bibliothèque système" ?

Itération sur votre suggestion @reynoldsnlp :

Impossible de désinstaller 'spam' (dans le répertoire courant). Aucun fichier à désinstaller n'a été trouvé.\nPour désinstaller 'spam' de votre ordinateur, exécutez la même commande à partir d'un répertoire qui ne contient pas de répertoire 'spam'.

C'est plus clair ?

Cette page vous a été utile?
0 / 5 - 0 notes