Как определить и удалить пакеты Python, установленные через pip?

Кажется, это так. Я действительно мог найти одно обсуждение практики с 2010 года, но это дает мне надежду на то, что он еще созрел с тех пор:

http://ubuntuforums.org/showthread.php?p=8874139 [!d1 ]

1
задан 6 May 2014 в 01:40

4 ответа

В настоящее время Pip игнорирует команды удаления, которые пытаются удалить что-то принадлежащее ОС. Это не ошибка, как это происходит с отсутствующим пакетом. Итак, теперь вы можете удалить следующий процесс:

pip freeze > dump.txt

Отредактируйте сбрасываемый файл, чтобы удалить любые строки [ed3 install] для установки -e, все после знака == (%s;==.*;;g в vim ), замените новые строки на пробелы (%s;\n; ;g в vim). Затем вы можете удалить все принадлежащие ему пакеты с помощью

cat dump.txt | xargs sudo pip uninstall -y

Мне пришлось выполнить эту процедуру дважды, потому что в ~/.local/lib было установлено несколько пакетов.

9
ответ дан 25 May 2018 в 07:48
  • 1
    Это должен быть принятый мне ответ – Nam G VU 19 April 2017 в 13:28
  • 2
    Если кто-то захочет получить безлимитный однострочный лайнер: sudo pip uninstall -y $(pip freeze | sed 's;==.*;;g' | tr '\n' ' ') – Benoit Duffez 20 April 2017 в 10:34
  • 3
    Осторожный! Это зависит от того, идет ли ваша ОС к специальной версии pip. На archlinux pip счастливо удаляет системные пакеты. С другой стороны, pip на debian jessie жалуется и ошибки: Not uninstalling virtualenv at /usr/lib/python3/dist-packages, owned by OS – Thomas G. 20 April 2017 в 17:37
  • 4
    вам нужно sudo? - это определенно должен быть принятый ответ – Jonathan 11 July 2017 в 09:49

AFAIK sudo pip install будет установлен на /usr/local/lib/pythonVERSION/dist-packages. Вам необходимо запустить sudo pip uninstall, чтобы удалить пакеты по всей системе. Похоже, что pip freeze ищет метаданные пакета и перечисляет все, что установлено, например, как из pip, так и apt-get за пределы virtualenvs. В виртуальной среде есть опция -l, чтобы отображать пакеты, применимые только к этой виртуальной среде, но она, по-видимому, является делом по умолчанию, а также внутри виртуальной среды. Я думаю, вы можете просто удалить связанные пакеты на /usr/local/lib/pythonVERSION/dist-packages, но не очень удобный метод, я думаю.

6
ответ дан 25 May 2018 в 07:48

Чтобы удалить пакет, установленный через pip, просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он открывается, запустите команду ниже.

pip uninstall < package-name >

Для поиска пакетов

pip search <package you want to search for>

Чтобы определить, какие пакеты Python были установлены pip, командой freeze который предоставит вам список установленных пакетов и их версий. Я бы предложил удалить все экземпляры и переустановить с помощью команды sudo apt-get

sudo apt-get install python3
5
ответ дан 25 May 2018 в 07:48
  • 1
    как определить, какие пакеты Python были установлены в pip, и какие apt-get? могу ли я pip uninstall, если я использовал sudo pip install в первую очередь? – d3vid 8 August 2012 в 14:42
  • 2
    @ d3vid pip freeze показывает только установленные пакеты (AFAICS). – Oli♦ 8 August 2012 в 15:22
  • 3
    @oli pip freeze, по крайней мере, по крайней мере, также перечисляет пакеты, установленные apt, как здесь описываются другие ответы. – nealmcb 24 October 2013 в 01:37

Это как-то связано с Homebrew. У меня не было проблем с pyobbc на моем Mac Air, пока я не установил Homebrew и не использовал его для нескольких вещей. Я нашел эту нить на github, которая заканчивается решением, которое сработало для меня.

«Если у вас есть Homebrew, просто установите заголовки ODBC:

$ brew install unixodbc

и снова запустите« pip install pyodbc ».

Этот 100% проблема для меня и только на мгновение. Дать ему шанс.

-1
ответ дан 25 May 2018 в 07:48
  • 1
    возможно, вам нужно опубликовать это в Ask Different? apple.stackexchange.com – d3vid 5 July 2017 в 14:58

Другие вопросы по тегам:

Похожие вопросы: