Окружающая обстановка
Описание
Я установил локальный пакет spam
, используя python3 -m pip install --user .
. Если я попытаюсь удалить свой пакет, когда папка пакета находится в текущем каталоге, я получу следующее:
$ 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.
Удаление завершается успешно, когда я запускаю его из другого каталога:
$ cd \tmp && python3 -m pip uninstall --verbose spam
# successfully uninstalls...
Ожидаемое поведение
Я не ожидал, что uninstall
будет чувствителен к содержимому локального каталога. Если это ожидаемое поведение по техническим причинам, я бы изменил сообщение stderr
Can't uninstall 'spam'. No files were found to uninstall.
, чтобы оно было более полезным и указывало на то, что сбой может быть вызван тем, что существует локальная папка с именем целевого пакета.
Может быть, исправить ошибку в этом случае, чтобы сказать Can't uninstall 'spam' (found in current directory). No files were found to uninstall.
?
@pfmoore Я думаю, что ваше отредактированное сообщение определенно является улучшением (и сэкономило бы мне время), но я бы пошел еще дальше. Как насчет чего-то более поучительного, например 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.
(и изменить system library
, если есть более точный термин). Это слишком многословно?
Кажется, что единственный раз, когда кто-то когда-либо сталкивался с этим сообщением, был в ситуации, похожей на мою. Я могу ошибаться, но удаление из текущего каталога, например, cd path/to/site-packages && python3 -m pip uninstall spam
, кажется маргинальным вариантом использования, и если кто-то знает достаточно, чтобы сделать это, то сообщение, настроенное для дышащих ртом, таких как я, не смутит их.
Похоже, что большинство пользователей просто предполагают — как и я ;-) — что uninstall
волшебным образом найдет пакет в системной библиотеке.
Может быть, «ваш компьютер» лучше, чем «системная библиотека»?
Итерация по вашему предложению @reynoldsnlp :
Не удается удалить спам (в текущем каталоге). Файлов для удаления не найдено.\nЧтобы удалить спам с вашего компьютера, запустите ту же команду из каталога, который не содержит каталога спама.
Это яснее?
Самый полезный комментарий
@pfmoore Я думаю, что ваше отредактированное сообщение определенно является улучшением (и сэкономило бы мне время), но я бы пошел еще дальше. Как насчет чего-то более поучительного, например
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.
(и изменитьsystem library
, если есть более точный термин). Это слишком многословно?Кажется, что единственный раз, когда кто-то когда-либо сталкивался с этим сообщением, был в ситуации, похожей на мою. Я могу ошибаться, но удаление из текущего каталога, например,
cd path/to/site-packages && python3 -m pip uninstall spam
, кажется маргинальным вариантом использования, и если кто-то знает достаточно, чтобы сделать это, то сообщение, настроенное для дышащих ртом, таких как я, не смутит их.Похоже, что большинство пользователей просто предполагают — как и я ;-) — что
uninstall
волшебным образом найдет пакет в системной библиотеке.