Как удалить пакеты, установленные с помощью Python easy_install?

Питона easy_install делает установку новых пакетов чрезвычайно удобной Однако, насколько я могу судить, он не реализует другие общие функции менеджера зависимостей - перечисление и удаление установленных пакетов.

Каков наилучший способ узнать, что установлено, и каков предпочтительный способ удаления установленных пакетов? Есть ли файлы, которые нужно обновить, если я удаляю пакеты вручную (например, rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg или похожие)?

13 ответов

Решение

pip, альтернатива setuptools/easy_install, предоставляет команду "удалить".

Установите трубопровод в соответствии с инструкциями по установке:

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

Тогда вы можете использовать pip uninstall удалить пакеты, установленные с easy_install

Чтобы удалить .egg вам нужно rm -rf яйцо (это может быть каталог) и удалите соответствующую строку из site-packages/easy-install.pth

Сначала вы должны выполнить эту команду:

$ easy_install -m [PACKAGE]

Удаляет все зависимости пакета.

Затем удалите файл egg этого пакета:

$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg

Вся информация содержится в других ответах, но ни одна из них не суммирует оба ваших запроса или не делает вещи излишне сложными:

  • Для вашего удаления необходимо использовать:

    pip uninstall <package>
    

    (установить с помощью easy_install pip)

  • Для "списка установленных пакетов" необходимо либо:

    pip freeze
    

    Или же:

    yolk -l
    

    который может выводить больше деталей пакета.

    (Установить через easy_install yolk или же pip install yolk)

В сети есть несколько источников, предлагающих взломать, переустановив пакет с опцией -m, а затем просто удалив файл.egg в lib / и двоичные файлы в bin /. Кроме того, обсуждение этой проблемы setuptools можно найти на трекере ошибок Python, как выпуск 21 установки.

Изменить: Добавлена ​​ссылка на багтрекер Python.

Если проблема достаточно серьезна для вас, вы можете подумать о virtualenv. Это позволяет вам создавать среду, которая инкапсулирует библиотеки Python. Вы устанавливаете пакеты там, а не в глобальном каталоге site-packages. Любые скрипты, которые вы запускаете в этой среде, имеют доступ к этим пакетам (и, опционально, к вашим глобальным). Я часто использую это при оценке пакетов, которые я не уверен / хочу установить глобально. Если вы решите, что вам не нужен пакет, достаточно просто уничтожить эту виртуальную среду. Это довольно легко использовать. Сделайте новый env:

$>virtualenv /path/to/your/new/ENV

virtual_envt устанавливает setuptools для вас в новой среде, так что вы можете сделать:

$>ENV/bin/easy_install

Вы даже можете создавать свои собственные сценарии boostrap, которые настраивают вашу новую среду. Таким образом, с помощью одной команды вы можете создать новый виртуальный env с, скажем, python 2.6, psycopg2 и django, установленными по умолчанию (вы можете установить специфичную для env версию python, если хотите).

Официальные (?) Инструкции: http://peak.telecommunity.com/DevCenter/EasyInstall

Если вы заменили пакет другой версией, вы можете просто удалить ненужные пакеты, удалив файл или каталог PackageName-versioninfo.egg (находится в каталоге установки).

Если вы хотите удалить установленную на данный момент версию пакета (или все версии пакета), вы должны сначала выполнить:

easy_install -mxN PackageName

Это гарантирует, что Python не продолжит поиск пакета, который вы планируете удалить. После этого вы можете безопасно удалить файлы или каталоги.egg, а также любые сценарии, которые хотите удалить.

Пытаться

$ easy_install -m [PACKAGE]

затем

$ rm -rf .../python2.X/site-packages/[PACKAGE].egg

Для просмотра списка установленных пакетов Python вы можете использовать yolk -l, Вам нужно будет использовать easy_install yolk сначала хотя.

Наткнулся на этот вопрос, пытаясь удалить множество случайных пакетов Python, установленных со временем.

Используя информацию из этой ветки, вот что я придумал:

cat package_list | xargs -n1 sudo pip uninstall -y

package_list очищен (awk) от pip freeze в виртуальности.

Чтобы удалить почти все пакеты Python:

yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y

Для меня только удаление этого файла: easy-install.pth сработал, остальные pip install django==1.3.7

Я столкнулся с той же проблемой на моем MacOS X Leopard 10.6.blah.

Решение - убедиться, что вы вызываете MacPorts Python:

sudo port install python26
sudo port install python_select
sudo python_select python26
sudo port install py26-mysql

Надеюсь это поможет.

Это сработало для меня. Это похоже на предыдущие ответы, но путь к пакетам отличается.

  1. sudo easy_install -m
  2. sudo rm -rf /Library/Python/2.7/site-packages/.egg

Платформа: MacOS High Sierra версия 10.13.3

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