Você pode simplesmente excluir o diretório da instalação do python ou há algum arquivo remanescente que deve ser excluído?
92
Isso varia com base nas opções que você passa install
e no conteúdo dos arquivos de configuração do distutils no sistema / no pacote. Não acredito que nenhum arquivo seja modificado fora dos diretórios especificados dessas maneiras.
Notavelmente, distutils não tem um comando de desinstalação neste momento.
É também digno de nota que deletar um pacote / ovo pode causar problemas de dependência - utilitários como easy_install
tentam aliviar tais problemas.
As três coisas que são instaladas e que você precisa excluir são:
Agora, no meu sistema Linux, eles residem em:
Mas em um sistema Windows, é mais provável que estejam inteiramente no diretório de distribuição do Python. Não tenho ideia sobre o OSX, exceto que é mais provável que siga o padrão do Linux.
fonte
Outro hack baseado em timestamp:
touch /tmp/ts
python setup.py install --prefix=<PREFIX>
find <PREFIX> -cnewer /tmp/ts | xargs rm -r
fonte
| xargs rm -r
. Eu recomendo revisar cada arquivo manualmente . No ext4 (e outros sistemas de arquivos), issofind
irá listar todas as pastas também. Se o seu prefixo era/usr
, você vai deletar/usr/*
.Sim, é seguro simplesmente excluir qualquer coisa que o distutils esteja instalado. Isso vale para pastas instaladas ou arquivos .egg. Naturalmente, qualquer coisa que dependa desse código não funcionará mais.
Se quiser que funcione novamente, basta reinstalar.
A propósito, se você estiver usando distutils, também considere usar o recurso de várias versões. Ele permite que você tenha várias versões de qualquer pacote único instalado. Isso significa que você não precisa excluir uma versão antiga de um pacote se quiser apenas instalar uma versão mais recente.
fonte
No ubuntu 12.04, descobri que o único lugar que você precisa procurar por padrão é em
E simplesmente remova a pasta e o arquivo associados, se houver!
fonte
Se for para fins de teste e / ou desenvolvimento, setuptools tem um comando de desenvolvimento que atualiza toda vez que você faz uma alteração (para que você não precise desinstalar e reinstalar toda vez que fizer uma alteração). E você pode desinstalar o pacote usando este comando também.
Se você usar isso, tudo o que você declarar como um script será deixado para trás como um arquivo remanescente.
fonte
install --record
+xargs rm
remove todos os arquivos, mas deixa diretórios vazios para trás.
Isso não é o ideal, deve ser suficiente para evitar conflitos de pacotes.
E então você pode terminar o trabalho manualmente, se quiser lendo
files.txt
, ou ser mais corajoso e automatizar a remoção de diretórios vazios também.Um ajudante seguro seria:
Testado em Python 2.7.6, Ubuntu 14.04.
fonte
para Python no Windows:
fonte
Acabei de desinstalar um pacote Python e, embora não tenha certeza se o fiz perfeitamente, estou razoavelmente confiante.
Comecei obtendo uma lista de todos os arquivos relacionados ao python, ordenados por data, supondo que todos os arquivos em meu pacote terão mais ou menos o mesmo carimbo de data / hora e nenhum outro arquivo terá.
Felizmente, tenho o python instalado no
/opt/Python-2.6.1
; se eu estivesse usando o Python que vem com minha distro Linux, teria que vasculhar tudo/usr
, o que demoraria muito.Então, apenas examinei essa lista e observei com alívio que todas as coisas que eu queria destruir consistiam em um diretório
/opt/Python-2.6.1/lib/python2.6/site-packages/module-name/
, e um arquivo/opt/Python-2.6.1/lib/python2.6/site-packages/module-x.x.x_blah-py2.6.egg-info
,.Então, acabei de deletar esses.
Veja como obtive a lista de arquivos classificada por data:
find "$@" -printf '%T@ ' -ls | sort -n | cut -d\ -f 2-
(Acho que deve ser GNU "encontrar", a propósito; o sabor que você obtém no OS X não sabe sobre "-printf '% T @'")
Eu uso que todo o tempo.
fonte
Para Windows 7,
Painel de controle -> Programas -> Desinstalar
, então
escolha o pacote python a ser removido.
fonte
No Mac OSX, exclua manualmente esses 2 diretórios em pathToPython / site-packages / funcionará:
por exemplo, para remover pyasn1 , que é um projeto instalado com distutils:
Para descobrir onde está o seu site-packages:
fonte
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.
Então eu digito:
conda uninstall entrypoints pip install --upgrade pycodestyle pip install nuscenes-devkit
Feito!
fonte