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/onmacOS. У него нет файлов, но 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://[email protected]/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 --upgrade
в некоторых системах (например, Debian Jessie) это недоступно (для предотвращения взлома установка системы python).
используя
grepилиfindпримеры выше предполагают, что у вас есть
grepустановлен. У меня был (в то время у меня была MS Windows на моей машине) установленный набор утилит linux (ВКЛ. команда grep.) Кроме того, используйте собственный MS Windowsfindили просто игнорировать эту фильтрацию и найти имя в немного более длинном списке обнаруженных пакетов python.
ответ #1 имеет проблемы:
- не будет работать на mac.
- если установлен файл, который включает пробелы или другие специальные символов
xargsкоманда завершится неудачно, и удалить любой файлы / каталоги, которые соответствуют отдельным словам.- the
-rнаrm -rfявляется ненужным и в худшем случае может удалить вещи, которые вы не хочу.вместо этого, для unix-подобных:
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установить, который не будет беспокоить вас в типичном случае. Более полный ответ см. На этой странице Вики:
сначала запишите файлы, которые вы установили. Вы можете повторить эту команду, даже если вы ранее запускали
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/site-packages/
в 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 / site-packages
3) отсюда вы можете удалить пакеты и Python яичные файлы
[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, чтобы удалить его.
предполагая, что имя доступно в переменной' METADATA':
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.
Comments