Як видалити редаговані пакети за допомогою 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, для видалення в режимі Dev в conda:conda develop -u .
Чарлі Паркер,

Ви розібралися, чому pip uninstall yourpackageне працювали? Як, що означають ваші помилки? Здається незвичайний вихід з команди ...
Чарлі Паркер

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

2
Для мене pip uninstall libraryпрацювали просто чудово. Якщо ви перейдете до відповіді ОП за умови, що здається, що з його бібліотекою було пошкоджено щось дивне. Сподіваємось, це економить час для людей, коли вони приїдуть сюди. Хоча, існує багато різних варіантів, які можуть працювати.
Чарлі Паркер

Відповіді:


90

At {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 видалення працює добре також для пакетів, встановлених з -eопцією.
знаменитийГаркін

9
для мене , використовуючи 8.1.2, pip uninstall package_nameпрацює, але pip uninstall .не працює
confused00

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 .- це поточний каталог, ви використовуєте повний абсолютний шлях пакета.
Legolas Bloom

1
Неповний. Що з усіма пакетами Python? ( site-packagesреж.)
Хорхе Орпінель

Це не повністю скасує встановлення. Він видаляє речі з папки, з якої був встановлений пакунок, але не видаляє симпосилання у вашому dist-packagesкаталозі (де Python шукає встановлений пакет). Очисник у використанні python setup.py develop -u.
Марк Амері

@MarkAmery Спасибі, pip uninstall package_nameпрацюй зараз.
Legolas Bloom

6

Це помилка на debian / ubuntu linux за допомогою встановленого ОС (p8.1.1 для мене), до чого ви будете sudo pipзвертатися, навіть якщо ви оновили pip (наприклад, get-pip.py). Дивіться https://github.com/pypa/pip/isissue/4438

Для обговорення способів очищення дивіться /ubuntu/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip , хоча рішення є різноманітність "видалити все".

... Pip-пакети [іти] до /usr/local/lib/python2.7/dist-packages, а пакети підходять до/usr/lib/python2.7/dist-packages

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

Для моєї системи все, що мені потрібно було видалити, було /usr/local/lib/python2.7/dist-packages/{package_name}.egg-link


Для мене pip uninstall libraryпрацювали просто чудово. Якщо ви перейдете до відповіді ОП за умови, що здається, що з його бібліотекою було пошкоджено щось дивне. Сподіваємось, це економить час для людей, коли вони приїдуть сюди. Хоча, можливо, є багато різних варіантів
Чарлі Паркер

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

2
@dusktreader: Я не впевнений, що відбувається з pip uninstallкомандою OP (можливо, застаріла версія pip?), але я переконався, що в звичайних обставинах він робить саме те, що було запропоновано зробити вручну у прийнятій відповіді @glarrain. Якщо це не працює для вас, розкажіть, будь ласка, що ви тут робите, щоб ми могли далі розкопати проблему.
Аптерикс

@Apteryx зачекайте, ви говорите, що працює навіть для редагованого режиму?
Чарлі Паркер

Ця відповідь спрацювала на мене. Я думаю, що це не спрацювало з ОП, тому що якщо ви перевірите його відповідь, у нього була якась дивна пошкоджена установка (або його комп'ютер був у дивному стані). pip uninstall pkgпрацює afaik.
Чарлі Паркер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.