Как удалить редактируемые пакеты с помощью pip (устанавливается с помощью -e)


107

Я установил несколько пакетов с -e

> pip install -e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev

Я с пипсом замерз, вижу

> pip freeze
...
-e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev
...

когда я пытаюсь удалить пакеты, я получаю ошибки:

> pip uninstall horus-dev
Cannot uninstall requirement horus-dev, not installed

> pip uninstall horus
Cannot uninstall requirement horus, not installed

Как мне удалить такой пакет?


pip uninstall <package> удаляет пакеты, установленные в редактируемом режиме в последних версиях pip (у меня 19.1.1). Убедитесь, что вы используете имя пакета в setup.py, а не псевдоним, который вы указываете для вызова этого пакета в entry_points
picmate 涅

для людей, использующих conda, для удаления в режиме разработки в conda выполните:conda develop -u .
Чарли Паркер,

Разобрались, почему pip uninstall yourpackageне получилось? Нравится, что означают ваши ошибки? Кажется странным вывод команды ...
Чарли Паркер

Вы пробовали pip uninstall -e .или python setup.py develop -u?
Чарли Паркер

2
Для меня все pip uninstall libraryработало нормально. Если вы перейдете к ответу, OP при условии, что это что-то странное с его библиотекой, которая была повреждена. Надеюсь, это сэкономит время людям, когда они придут сюда в следующий раз. Хотя есть много разных вариантов, которые могут сработать.
Чарли Паркер

Ответы:


90

В {virtualenv}/lib/python2.7/site-packages/(если не использовать virtualenv {system_dir}/lib/python2.7/dist-packages/)

  • удалите файл с яйцом (например distribute-0.6.34-py2.7.egg), если он есть
  • из файла easy-install.pthудалите соответствующую строку (это должен быть путь к исходному каталогу или к файлу яйца).

43
Как ни странно, для этого нет соответствующего способа удаления.
Дрейк Гуан

4
@Drake, да, на самом деле довольно неприятно
glarrain

4
В текущей версии pip удаление работает нормально также для пакетов, установленных с помощью -eoption.
knowngarkin

9
у меня используется 8.1.2, pip uninstall package_nameработает, но pip uninstall .не работает
confused

5
Существует открытый вопрос против пипа здесь для способности , чтобы удалить редактируемые установленные пакеты.
Крис Хант,

22

Более простой способ сделать то же самое с новой версией setup_tools - запустить следующее:

python setup.py develop -u

Что в основном делает то же, что @glarrain описывает в своем ответе.


2
должен ли быть какой-нибудь вывод для этой команды? Я получаю, это говорит, running developно я все еще .egg-infoфайл ... предполагается, что его нужно удалить?
Пиноккио

Какая «новая версия setup_tools» дает такой ответ? Не могли бы вы это подтвердить?
Чарли Паркер

Ваш ответ гарантирует, что тонкости не нужно удалять вручную?
Чарли Паркер

Он не производит никаких результатов. Насколько я понимаю, он должен удалить его: "--uninstall, -u Отменить развертывание текущего проекта. Вы можете использовать параметр --install-dir или -d, чтобы указать промежуточную область. Созданный файл .egg-link будет быть удаленным, если он присутствует и все еще указывает на каталог проекта ". из документации setuptools . После запуска он все еще загружает контент из каталога разработки?
Ахмед Шариф

@CharlieParker Я не уверен, в какой версии он был представлен. Мне никогда не приходилось вручную удалять эти файлы.
Ахмед Шариф

10

Установите пакет dev, используя cmd:

pip install --editable .

Удалить:

rm -r $(find . -name '*.egg-info')

Теперь вы можете использовать:

pip uninstall package_name 

или python setup.py develop --uninstallилиpython setup.py develop -u


4
Не могли бы вы указать, откуда вы запускаете вторую команду?
ethanabrooks

1
@ethanabrooks .- это текущий каталог, вы используете полный абсолютный путь к пакету.
Леголас Блум

1
Неполный. А как насчет всех пакетов Python? ( site-packagesреж.)
Хорхе Орпинель 01

Это не отменяет полностью установку. Он удаляет файлы из папки, из которой был установлен пакет, но не удаляет символическую ссылку в вашем dist-packagesкаталоге (где Python ищет установленный пакет). Очиститель для использования python setup.py develop -u.
Марк Эмери,

@MarkAmery Спасибо, pip uninstall package_nameработайте сейчас.
Леголас Блум

6

Это ошибка в debian / ubuntu linux с использованием установленного в ОС pip (v8.1.1 для меня), который вы будете вызывать, sudo pipдаже если вы обновили pip (например, get-pip.py). См. Https://github.com/pypa/pip/issues/4438

Для обсуждения того, как очистить, см. Https://askubuntu.com/questions/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip , хотя там есть решения разновидность «убрать все».

... pip packages [перейти] /usr/local/lib/python2.7/dist-packagesи apt пакеты для/usr/lib/python2.7/dist-packages

... также было установлено несколько пакетов ~/.local/lib.

Для моей системы все, что мне нужно было удалить, это /usr/local/lib/python2.7/dist-packages/{package_name}.egg-link


Для меня все pip uninstall libraryработало нормально. Если вы перейдете к ответу, OP при условии, что это что-то странное с его библиотекой, которая была повреждена. Надеюсь, это сэкономит время людям, когда они придут сюда в следующий раз. Хотя есть много разных вариантов, которые могут сработать
Чарли Паркер

5

Оказывается, моя установка была каким-то образом повреждена.

Я мог найти запись в:

/usr/local/lib/python2.7/site-packages/easy-install.pth

Чтобы решить проблему, я вручную удалил строку в .pth файле!

import sys; sys.__plen = len(sys.path)
...
/absolute-path-to/horus  # <- I removed this line
...

1
Что означает, что ваша установка была повреждена?
Чарли Паркер

-1

Просто удалите пакет, который вы установили в «редактируемом» режиме:

pip uninstall yourpackage

9
ОП пробовал это и говорит об этом в своем вопросе. Это не обязательно работает с пакетами, установленными как «редактируемые»
dusktreader 05

2
@dusktreader: я не уверен, что происходит с pip uninstallкомандой OP (возможно, это устаревшая версия pip?), но я подтвердил, что при нормальных обстоятельствах она делает именно то, что было предложено сделать вручную в принятом ответе @glarrain. Если у вас не получается, подробно опишите, что вы здесь делаете, чтобы мы могли изучить проблему дальше.
Apteryx

@Apteryx, подождите, вы говорите, что это работает даже в редактируемом режиме?
Чарли Паркер

Этот ответ сработал для меня. Я думаю, что это не сработало для OP, потому что, если вы проверите его ответ, у него была какая-то странная поврежденная установка (или его компьютер был в странном состоянии). pip uninstall pkgработает афаик.
Чарли Паркер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.