python setup.py удалить - PullRequest
       56

python setup.py удалить

716 голосов
/ 11 октября 2009

Я установил пакет python с python setup.py install.

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

Ответы [ 14 ]

908 голосов
/ 11 октября 2009

Вам необходимо удалить все файлы вручную, а также отменить любые другие действия, которые установка выполняла вручную.

Если вы не знаете список всех файлов, вы можете переустановить его с помощью опции --record и взглянуть на список, который он создает.

Для записи списка установленных файлов вы можете использовать:

python setup.py install --record files.txt

После удаления вы можете использовать xargs для удаления:

xargs rm -rf < files.txt

Или, если вы используете Windows, используйте Powershell:

Get-Content files.txt | ForEach-Object {Remove-Item $_ -Recurse -Force}

Затем удалите также содержащий каталог, например, /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.egg/ на macOS. У него нет файлов, но Python все равно импортирует пустой модуль:

>>> import my_module
>>> my_module.__file__
None

После удаления Python показывает:

>>> import my_module
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'
210 голосов
/ 09 октября 2012

Для меня в основном работает следующее:

Установлен пункт, например ::1003*

$ easy_install pip

Проверьте, как называется ваш установленный пакет с точки зрения pip:

$ pip freeze

В этом списке перечислены все пакеты, которые вы установили (и которые были обнаружены pip). Имя может быть когда-нибудь длинным, тогда используйте только имя пакета, отображаемого в и после #egg=. Вы также можете в большинстве случаев игнорировать версию (независимо от того, что следует за == или -).

Затем удалите пакет:

$ pip uninstall package.name.you.have.found

Если он запрашивает подтверждение об удалении пакета, значит, вы счастливчик, и он будет удален.

pip должен обнаружить все пакеты, которые были установлены с помощью pip. Он также должен обнаружить большинство пакетов, установленных с помощью easy_install или setup.py, но в некоторых редких случаях это может привести к сбою.

Вот реальный пример из моего локального теста с пакетом с именем ttr.rdstmc в MS Windows.

$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev

$ python setup.py develop
.....
.....
Finished processing dependencies for ttr.rdstmc==0.0.1dev

$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
-e hg+https://vlcinsky@bitbucket.org/vlcinsky/ttr.rdstmc@d61a9922920c508862602f7f39e496f7b99315f0#egg=ttr.rdstmc-dev
ttr.utcutils==0.1.1dev

$ pip uninstall ttr.rdstmc
Uninstalling ttr.rdstmc:
  c:\python27\lib\site-packages\ttr.rdstmc.egg-link
Proceed (y/n)? y
  Successfully uninstalled ttr.rdstmc

$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev

Редактировать 2015-05-20

Все, что написано выше, по-прежнему применимо, во всяком случае, теперь есть небольшие модификации.

Установить pip в python 2.7.9 и python 3.4

Последние версии Python поставляются с пакетом ensurepip, позволяющим устанавливать pip даже в автономном режиме:

$ python -murepip --upgrade

В некоторых системах (например, в Debian Jessie) это недоступно (чтобы предотвратить нарушение установки Python системы).

Использование grep или find

В приведенных выше примерах предполагается, что у вас установлено grep. У меня (в то время, когда на моей машине была MS Windows) был установлен набор утилит linux (включая grep). В качестве альтернативы используйте MS Windows find или просто игнорируйте эту фильтрацию и найдите имя в более длинном списке обнаруженных пакетов Python.

71 голосов
/ 08 августа 2014

Ответ № 1 имеет проблемы:

  • Не будет работать на Mac.
  • Если установлен файл, который содержит пробелы или другие специальные символов, команда xargs завершится ошибкой, и удалит все файлы / каталоги, которые соответствуют отдельным словам.
  • -r в rm -rf не требуется и в худшем случае может удалить то, что вы не хочу.

Вместо этого для Unix-подобных:

sudo python setup.py install --record files.txt
# inspect files.txt to make sure it looks ok. Then:
tr '\n' '\0' < files.txt | xargs -0 sudo rm -f --

А для окон:

python setup.py bdist_wininst
dist/foo-1.0.win32.exe

Существуют также неразрешимые проблемы с удалением setup.py установки, которые не будут беспокоить вас в типичном случае. Для более полного ответа, смотрите эту вики-страницу:

https://ofswiki.org/wiki/Uninstalling_setup.py_install

33 голосов
/ 28 октября 2010

Сначала запишите файлы, которые вы установили. Вы можете повторить эту команду, даже если вы ранее запустили setup.py install:

python setup.py install --record files.txt

Когда вы хотите удалить, вы можете просто:

sudo rm $(cat files.txt)

Это работает, потому что команда rm берет список файлов, разделенных пробелами, для удаления, а ваша установочная запись - именно такой список.

15 голосов
/ 03 сентября 2015

Теперь Python дает вам возможность установить pip во время установки (я на Windows, и, по крайней мере, Python делает это для Windows!). Учитывая, что вы выбрали установку pip во время установки python (вам на самом деле не нужно выбирать, потому что это по умолчанию), pip уже установлена ​​для вас. Затем введите pip в командной строке, вы должны увидеть помощь. Вы можете найти необходимые инструкции по использованию там. Например. pip list показывает список установленных пакетов. Вы можете использовать

pip uninstall package_name

чтобы удалить любой пакет, который вам больше не нужен. Подробнее здесь (документация по пунктам) .

8 голосов
/ 11 октября 2009

Ленивый способ: просто удалите из меню установки Windows (если вы используете Windows) или из команды rpm, при условии, что вы сначала переустановите его после создания дистрибутива.

Например,

python setup.py bdist_wininst
dist/foo-1.0.win32.exe

("foo" является примером, конечно).

5 голосов
/ 11 октября 2009

Перейдите в каталог пакетов Python и удалите файл .egg, например.: В Python 2.5 (Ubuntu): /usr/lib/python2.5/site-packages/

В Python 2.6 (Ubuntu): /usr/local/lib/python2.6/dist-packages/

3 голосов
/ 25 октября 2015

Я думаю, что вы можете открыть файл setup.py, найти имя пакета и затем попросить pip удалить его.

Предполагается, что имя доступно в переменной 'METADATA':

pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")
3 голосов
/ 26 декабря 2013

Вероятно, вы можете сделать это как альтернативу: -

1) Получить версию Python -

[linux machine]# python
Python 2.4.3 (#1, Jun 18 2012, 14:38:55) 

-> Приведенная выше команда дает вам текущую версию Python, которая 2.4.3

2) Получить каталог установки python -

[linux machine]# whereis python
python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.5 /usr/include/python2.4 /usr/share/man/man1/python.1.gz

-> С помощью приведенной выше команды вы можете получить каталог установки - / usr / lib / python2.4 / site-packages

3) Здесь вы можете удалить пакеты и файлы python egg

[linux machine]# cd /usr/lib/python2.4/site-packages
[linux machine]# rm -rf paramiko-1.12.0-py2.4.egg paramiko-1.7.7.1-py2.4.egg paramiko-1.9.0-py2.4.egg

Это сработало для меня .. И я смог удалить пакет, который беспокоил меня:)

2 голосов
/ 16 февраля 2018

Не совсем отвечаю на вопрос, но помогаю мне каждый день:

Установите ваши пакеты с

pip install .

Это помещает пакет в $HOME/.local. Удалить с помощью

pip uninstall <package_name>
...