Можете ли вы просто удалить каталог из вашей установки python, или есть какие-либо устаревшие файлы, которые вы должны удалить?
Ответы:
Это зависит от параметров, которые вы передаете, installи содержимого файлов конфигурации distutils. в системе / в пакете. Я не верю, что какие-либо файлы изменяются вне каталогов, указанных таким образом.
Примечательно, что в настоящее время distutils не имеет команды удаления .
Также примечательно, что удаление пакета / яйца может вызвать проблемы с зависимостями - такие утилиты, как easy_installпопытки решить такие проблемы.
Вам нужно будет удалить следующие три вещи, которые будут установлены:
Теперь в моей системе Linux они живут в:
Но в системе Windows они, скорее всего, полностью находятся в каталоге распространения Python. Я понятия не имею об OSX, за исключением того, что мне больше нравится следовать шаблону Linux.
Другой способ взлома на основе метки времени:
touch /tmp/tspython setup.py install --prefix=<PREFIX>find <PREFIX> -cnewer /tmp/ts | xargs rm -r| xargs rm -r. Я рекомендую просматривать каждый файл вручную . В ext4 (и других файловых системах) findздесь также будут перечислены все папки . Если ваш префикс был /usr, вы удалите/usr/* .
Да, безопасно просто удалить все, что установлено distutils. Это касается установленных папок или файлов .egg. Естественно, все, что зависит от этого кода, больше не будет работать.
Если вы хотите, чтобы он снова заработал, просто переустановите.
Кстати, если вы используете distutils, также подумайте об использовании мультиверсии. Это позволяет вам установить несколько версий одного пакета. Это означает, что вам не нужно удалять старую версию пакета, если вы просто хотите установить более новую версию.
Если это делается для тестирования и / или разработки, в setuptools есть команда разработки, которая обновляется каждый раз, когда вы вносите изменения (поэтому вам не нужно удалять и переустанавливать систему каждый раз, когда вы вносите изменение). И вы также можете удалить пакет, используя эту команду.
Если вы все-таки используете это, все, что вы объявите как сценарий, останется как устаревший файл.
install --record + xargs rm
sudo python setup.py install --record files.txt
xargs sudo rm -rf < files.txt
удаляет все файлы и оставляет пустые каталоги.
Это не идеально, этого должно быть достаточно, чтобы избежать конфликтов пакетов.
А затем вы можете завершить работу вручную, если хотите, прочитав files.txt, или проявить смелость и автоматизировать удаление пустого каталога.
Надежным помощником будет:
python-setup-uninstall() (
sudo rm -f files.txt
sudo python setup.py install --record files.txt && \
xargs rm -rf < files.txt
sudo rm -f files.txt
)
Протестировано в Python 2.7.6, Ubuntu 14.04.
для Python в Windows:
python -m pip uninstall "package_keyword"
uninstall **** (y/n)?
Я только что удалил пакет python, и хотя я не уверен, что сделал это идеально, я достаточно уверен.
Я начал со списка всех файлов, связанных с Python, упорядоченных по дате, исходя из предположения, что все файлы в моем пакете будут иметь более или менее одинаковую метку времени, а другие файлы не будут.
К счастью, у меня установлен python /opt/Python-2.6.1; Если бы я использовал Python, поставляемый с моим дистрибутивом Linux, мне бы пришлось тщательно его изучить /usr, что заняло бы много времени.
Затем я просто изучил этот список и с облегчением отметил, что все, что я хотел уничтожить, состояло из одного каталога /opt/Python-2.6.1/lib/python2.6/site-packages/module-name/, и одного файла,/opt/Python-2.6.1/lib/python2.6/site-packages/module-x.x.x_blah-py2.6.egg-info .
Я просто удалил их.
Вот как я получил список файлов с сортировкой по дате:
find "$@" -printf '%T@ ' -ls | sort -n | cut -d\ -f 2-
(Я думаю, что это должно быть GNU "find", между прочим; вкус, который вы получаете в OS X, не знает о "-printf '% T @'")
Я использую это все время.
В Mac OSX вручную удалите эти 2 каталога по вашему пути ToPython / site-packages / будет работать:
например, чтобы удалить pyasn1 , который является установленным проектом distutils:
Чтобы узнать, где находится ваш сайт-пакет:
python -m site
ERROR: flake8 3.7.9 has requirement pycodestyle<2.6.0,>=2.5.0, but you'll have pycodestyle 2.3.1 which is incompatible.
ERROR: nuscenes-devkit 1.0.8 has requirement motmetrics<=1.1.3, but you'll have motmetrics 1.2.0 which is incompatible.
Installing collected packages: descartes, future, torch, cachetools, torchvision, flake8-import-order, xmltodict, entrypoints, flake8, motmetrics, nuscenes-devkit
Attempting uninstall: torch
Found existing installation: torch 1.0.0
Uninstalling torch-1.0.0:
Successfully uninstalled torch-1.0.0
Attempting uninstall: torchvision
Found existing installation: torchvision 0.2.1
Uninstalling torchvision-0.2.1:
Successfully uninstalled torchvision-0.2.1
Attempting uninstall: entrypoints
Found existing installation: entrypoints 0.2.3
ERROR: Cannot uninstall 'entrypoints'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Затем я печатаю:
conda uninstall entrypoints
pip install --upgrade pycodestyle
pip install nuscenes-devkit
Выполнено!