python setup.py удалить

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

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

13 ответов


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

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

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

python setup.py install --record files.txt

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

cat files.txt | xargs rm -rf

или если вы используете 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/ on 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'

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

установить pip, например:

$ easy_install pip

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

$ pip freeze

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

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

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

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

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

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

$ 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-m ensurepip --обновление

в некоторых системах (например, Debian Jessie) это недоступно (для предотвращения взлома установка системы python).

используя grep или find

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


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

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

вместо этого для unix-like:

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

и windows:

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

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

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


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

python setup.py install --record files.txt

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

sudo rm $(cat files.txt)

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


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

pip uninstall package_name

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


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

например,

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

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


перейдите в каталог пакетов python и удалите его .файл яйцо , например.: В Python 2.5(в Ubuntu): в /usr/lib в/Вместо python2.5/сайта-пакеты/

в python 2.6 (ubuntu):/usr/local/lib / python2.6 / dist-packages/


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

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 / сайт-пакеты

3) отсюда вы можете удалить пакеты и Python egg files

[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

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


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

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

pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")

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

установите пакеты с помощью

pip install .

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

pip uninstall <package_name>

расширение на то, что сказал Мартин, запись вывода установки и немного сценариев bash делает трюк довольно красиво. Вот что я сделаю...

for i in $(less install.record);
sudo rm $i;
done;

и вуаля. Удаленный.


возможно, лучше удалить связанные файлы, используя bash для чтения команд, например:

sudo python setup.py install --record files.txt
sudo bash -c "cat files.txt | xargs rm -rf"

Я запустил "python setup.py установите" в какой-то момент в прошлом случайно в моей глобальной среде, и было очень трудно удалить. Эти решения не помогли. "pip uninstall "не работал с" не удается удалить "splunk-appinspect". Файлы для удаления не найдены.""sudo pip uninstall "не работает"не удается удалить требование splunk-appinspect, не установлено". Я попытался удалить pip, удалить кэш pip, поиск на жестком диске для пакета, так далее...

"pip show" в конечном итоге привел меня к решению, "Location:" указывал на каталог, и переименование этого каталога вызвало удаление упакованного из списка pip. Я переименовал каталог обратно, и он не появился в списке pip, и теперь я могу переустановить свой пакет в virtualenv.