it-swarm.com.ru

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

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

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

678
ire_and_curses

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

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

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

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

611
lunaryorn

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

185
joeforker

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

$ easy_install -m [PACKAGE]

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

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

$ Sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].Egg
157
PythonDev

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

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

    pip uninstall <package>
    

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

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

    pip freeze
    

    Или же:

    yolk -l
    

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

    (Установить с помощью easy_install yolk или pip install yolk)

55
Rabarberski

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

Правка: Добавлена ​​ссылка на багтрекер python.

28
c089

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

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

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

$>ENV/bin/easy_install

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

25
mazelife

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

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

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

easy_install -mxN PackageName

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

18
Mark Rajcok

пытаться

$ easy_install -m [PACKAGE]

затем

$ rm -rf .../python2.X/site-packages/[PACKAGE].Egg
15
Jim Geovedi

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

7
Enis Afgan

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

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

cat package_list | xargs -n1 Sudo pip uninstall -y

Код package_list очищается (awk) из кода pip freeze в virtualenv.

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

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

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

3
Snehal Parmar

Я столкнулся с той же проблемой на моем 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

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

3
Cmag

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

  1. Sudo easy_install -m
  2. Sudo rm -rf /Library/Python/2.7/site-packages/.Egg

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

1
Red Rooster