Как удалить пакеты, установленные с помощью 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
Надеюсь это поможет.
Это сработало для меня. Это похоже на предыдущие ответы, но путь к пакетам отличается.
- sudo easy_install -m
- sudo rm -rf /Library/Python/2.7/site-packages/.egg
Платформа: MacOS High Sierra версия 10.13.3