Ambiente
Descripción
Instalé un paquete local, spam
, usando python3 -m pip install --user .
. Si trato de desinstalar mi paquete cuando la carpeta del paquete está en el directorio actual, obtengo lo siguiente:
$ 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 desinstalación se completa con éxito cuando la ejecuto desde un directorio diferente:
$ cd \tmp && python3 -m pip uninstall --verbose spam
# successfully uninstalls...
Comportamiento esperado
No esperaba que uninstall
fuera sensible al contenido del directorio local. Si este es el comportamiento esperado por razones técnicas, cambiaría el mensaje $ stderr
Can't uninstall 'spam'. No files were found to uninstall.
para que sea más útil al indicar que la falla podría deberse a que hay una carpeta local con el nombre del paquete de destino.
¿Quizás enmendar el error en este caso para decir Can't uninstall 'spam' (found in current directory). No files were found to uninstall.
?
@pfmoore Creo que su mensaje editado es definitivamente una mejora (y me habría ahorrado algo de tiempo), pero iría aún más lejos. ¿Qué tal algo más instructivo, como 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.
(y cambie system library
si hay un término más preciso). ¿Es eso demasiado detallado?
Parece que la única vez que alguien se toparía con este mensaje es si estuviera en una situación similar a la mía. Puede que me equivoque, pero la desinstalación del directorio actual como cd path/to/site-packages && python3 -m pip uninstall spam
parece un caso de uso marginal, y si alguien sabe lo suficiente como para hacerlo, entonces un mensaje sintonizado para personas que respiran por la boca como yo no los confundirá.
Parece que la mayoría de los usuarios simplemente asumen, como yo lo hice ;-) – que uninstall
va a encontrar mágicamente el paquete en la biblioteca del sistema.
¿Quizás 'su computadora' sería mejor que 'biblioteca del sistema'?
Iteración de su sugerencia @reynoldsnlp :
No se puede desinstalar 'spam' (en el directorio actual). No se encontraron archivos para desinstalar.\nPara desinstalar 'spam' de su computadora, ejecute el mismo comando desde un directorio que no contenga un directorio de 'spam'.
¿Es más claro?
Comentario más útil
@pfmoore Creo que su mensaje editado es definitivamente una mejora (y me habría ahorrado algo de tiempo), pero iría aún más lejos. ¿Qué tal algo más instructivo, como
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.
(y cambiesystem library
si hay un término más preciso). ¿Es eso demasiado detallado?Parece que la única vez que alguien se toparía con este mensaje es si estuviera en una situación similar a la mía. Puede que me equivoque, pero la desinstalación del directorio actual como
cd path/to/site-packages && python3 -m pip uninstall spam
parece un caso de uso marginal, y si alguien sabe lo suficiente como para hacerlo, entonces un mensaje sintonizado para personas que respiran por la boca como yo no los confundirá.Parece que la mayoría de los usuarios simplemente asumen, como yo lo hice ;-) – que
uninstall
va a encontrar mágicamente el paquete en la biblioteca del sistema.