Как удалить пакеты, установленные с помощью простой установки Python?
в Python easy_install
делает установку новых пакетов чрезвычайно удобной. Однако, насколько я могу судить, он не реализует другие общие функции диспетчера зависимостей - листинг и удаление установленных пакетов.
каков наилучший способ узнать, что установлено, и каков предпочтительный способ удаления установленных пакетов? Есть ли файлы, которые необходимо обновить, если я удаляю пакеты вручную (например,rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg
или подобные)?
13 ответов
Пип, альтернатива setuptools / easy_install, предоставляет команду "Удалить".
установить pip в соответствии с инструкция по установке:
$ 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]
Он удаляет все зависимости пакета.
затем удалите файл яйца этого пакета:
$ 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, а затем просто удалив .файл яйца в lib / и двоичные файлы в bin/. Кроме того, обсуждение этой проблемы setuptools можно найти на трекере ошибок python как setuptools вопрос 21.
Edit: добавлена ссылка на Python bugtracker.
Если проблема является серьезной-достаточно раздражение для вас, вы могли бы рассмотреть 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#uninstalling-packages
Если вы заменили пакет другой версией, вы можете просто удалить пакеты, которые вам не нужны, удалив PackageName-versioninfo.файл или каталог egg (находится в каталоге установки).
Если вы хотите удалить текущую установленную версию пакета (или все версии пакета), вы должны первый запуск:
easy_install -mxN PackageName
Это гарантирует, что Python не продолжит поиск пакета, который вы планируете удалить. После того как вы сделали это, вы можете безопасно удалить .файлы или каталоги, яйца, а также любые скрипты, которые вы хотите удалить.
чтобы перечислить установленные пакеты Python, вы можете использовать yolk -l
. Вам нужно будет использовать первый.
наткнулся на этот вопрос, пытаясь удалить множество случайных пакетов 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
я столкнулся с той же проблемой на моем MacOS X Leopard 10.6.чепуха.
решение состоит в том, чтобы убедиться, что вы вызываете MacPorts Python:
sudo port install python26
sudo port install python_select
sudo python_select python26
sudo port install py26-mysql
надеюсь, что это помогает.
для меня только удаление этого файла: простота установки.pth работал, остальные pip устанавливают django==1.3.7
Это работает для меня. Это похоже на предыдущие ответы, но путь к пакетам отличается.
- sudo easy_install-m
- sudo rm-rf / Library / Python / 2.7 / site-packages/.яйцо
Plaform: MacOS High Sierra версия 10.13.3