Environnement
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.
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 ?
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 changezsystem 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.