Как удалить пакеты, установленные с помощью Python easy_install?
Python easy_install
упрощает установку новых пакетов. Однако, насколько я могу судить, он не реализует другие общие функции менеджера зависимостей - перечисление и удаление установленных пакетов.
Каков наилучший способ узнать, что установлено, и какой предпочтительный способ удаления установленных пакетов? Существуют ли какие-либо файлы, которые необходимо обновить, если я удалю пакеты вручную (например, rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg
или аналогичным)?
Ответы
Ответ 1
pip, альтернатива setuptools/easy_install, предоставляет команду "удалить".
Установите команду в соответствии с инструкциями :
$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py
Затем вы можете использовать pip uninstall
для удаления пакетов, установленных с помощью easy_install
Ответ 2
Чтобы удалить .egg
, вам нужно rm -rf
яйцо (это может быть каталог) и удалить соответствующую строку из site-packages/easy-install.pth
Ответ 3
Сначала вы должны запустить эту команду:
$ easy_install -m [PACKAGE]
Он удаляет все зависимости пакета.
Затем удалите файл яйца этого пакета:
$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg
Ответ 4
Вся информация находится в других ответах, но ни один из них не суммирует ваши запросы или, кажется, делает вещи бесполезно сложными:
-
Для вашего устранения необходимо использовать:
pip uninstall <package>
(установите с помощью easy_install pip
)
-
Для ваших "установленных пакетов" необходимо либо использовать:
pip freeze
Или:
yolk -l
который может выводить больше деталей пакета.
(Установите через easy_install yolk
или pip install yolk
)
Ответ 5
В сети есть несколько источников, предлагающих взломать, переустановив пакет с параметром -m, а затем просто удалив файл .egg в lib/и двоичные файлы в bin/. Кроме того, обсуждение этой проблемы setuptools можно найти на трекере ошибок python в качестве setuptools issue 21.
Изменить: добавлена ссылка на bugtracker python.
Ответ 6
Если проблема является достаточно серьезной досадой для вас, вы можете рассмотреть virtualenv. Он позволяет создавать среду, которая инкапсулирует библиотеки python. Вы устанавливаете пакеты там, а не в каталог глобальных пакетов сайтов. Любые скрипты, которые вы запускаете в этой среде, имеют доступ к этим пакетам (и, возможно, к вашим глобальным). Я использую это при оценке пакетов, которые я не уверен, что хочу/должен установить глобально. Если вы решите, что вам не нужен пакет, достаточно просто просто удалить эту виртуальную среду. Он довольно прост в использовании. Создайте новый env:
$>virtualenv /path/to/your/new/ENV
virtual_envt устанавливает для вас setuptools в новой среде, поэтому вы можете:
$>ENV/bin/easy_install
Вы даже можете создать свои собственные скрипты boostrap, которые настраивают вашу новую среду. Таким образом, с помощью одной команды вы можете создать новое виртуальное env с, скажем, python 2.6, psycopg2 и django, установленными по умолчанию (вы можете установить версию python, зависящую от env, если вы хотите).
Ответ 7
Официальные инструкции (?): http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages
Если вы заменили пакет на другую версию, вы можете просто удалить пакеты, которые вам не нужны, удалив файл или каталог PackageName-versioninfo.egg(найденный в каталоге установки).
Если вы хотите удалить текущую установленную версию пакета (или все версии пакета), вы должны сначала запустить:
easy_install -mxN PackageName
Это гарантирует, что Python не продолжит поиск пакета, который вы планируете удалить. После этого вы можете безопасно удалить файлы .egg или каталоги вместе с любыми сценариями, которые вы хотите удалить.
Ответ 8
попробовать
$ easy_install -m [PACKAGE]
затем
$ rm -rf .../python2.X/site-packages/[PACKAGE].egg
Ответ 9
Чтобы указать установленные пакеты Python, вы можете использовать yolk -l
. Сначала вам нужно использовать easy_install yolk
.
Ответ 10
Прошел этот вопрос, пытаясь удалить множество случайных пакетов 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
Ответ 11
Я столкнулся с той же проблемой на моем 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
Надеюсь, что это поможет.
Ответ 12
Только для удаления этого файла: easy-install.pth
работал, оставил pip install django == 1.3.7
Ответ 13
Это сработало для меня. Это похоже на предыдущие ответы, но путь к пакетам отличается.
- sudo easy_install -m
- sudo rm -rf/Library/Python/2.7/site-packages/.egg
Plaform: MacOS High Sierra версия 10.13.3