Como desinstalar o Python 2.7 em um Mac OS X 10.6.4?

339

Quero remover completamente o Python 2.7 do meu Mac OS X 10.6.4. Consegui remover a entrada da PATHvariável revertendo meu .bash_profile. Mas também quero remover todos os diretórios, arquivos, links simbólicos e entradas que foram instaladas pelo pacote de instalação do Python 2.7. Eu tenho o pacote de instalação em http://www.python.org/ . Quais diretórios / arquivos / entradas do arquivo de configuração eu preciso remover? Tem a lista em algum lugar?

Jan Deinhard
fonte

Respostas:

705

Não tente remover nenhum sistema Python fornecido pela Apple que esteja /System/Librarye /usr/bin, pois isso pode danificar todo o sistema operacional.


NOTA: As etapas listadas abaixo não afetam o sistema fornecido pela Apple, Python 2.7; eles removem apenas uma estrutura Python de terceiros, como as instaladas pelos instaladores do python.org .


A lista completa está documentada aqui . Basicamente, tudo o que você precisa fazer é o seguinte:

  1. Remova a estrutura Python 2.7 de terceiros

    sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
  2. Remova o diretório de aplicativos Python 2.7

    sudo rm -rf "/Applications/Python 2.7"
  3. Remova os links simbólicos, em /usr/local/bin, que apontam para esta versão do Python. Veja-os usando

    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' 

    e, em seguida, execute o seguinte comando para remover todos os links:

    cd /usr/local/bin/
    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
  4. Se necessário, edite o (s) arquivo (s) de perfil do shell para remover a adição /Library/Frameworks/Python.framework/Versions/2.7ao PATHarquivo de ambiente. Dependendo de qual shell você usar, qualquer um dos seguintes arquivos podem ter sido modificados: ~/.bash_login, ~/.bash_profile, ~/.cshrc, ~/.profile, ~/.tcshrc, e / ou ~/.zprofile.

Ned Deily
fonte
157
Obrigado pelo aviso, Ned, eu o removi e descobri da maneira mais difícil que você precisa para reinstalar o Mac OS X. Estou deixando isso aqui para qualquer um que aparecer e pensar da mesma maneira que eu. Não remova Python em / System / Library / Frameworks / ... Nenhum de seus aplicativos vai funcionar e você terá que reinstalar o OS X.
brthornbury
44
O Python 2.7 é o sistema padrão do Python em sistemas recentes, enquanto no 10.6.4 ele era 2.6 e o ​​2.7 era instalado pelo usuário. NÃO DESINSTALE 2.7 DE UM SISTEMA OS X RECENTE.
Martijn Pieters
30
As etapas acima não removem o Python do sistema de nenhuma versão do OS X. Os System Pythons estão instalados /System/Library/Frameworks(os quais você nunca deve modificar), não /Library/Frameworks.
Ned Deily
5
brew doctortambém pode ser usado para encontrar os links simbólicos não utilizados.
Shubham Kushwah
5
Não faça essas etapas !!!!! Seu ambiente virtualenv será quebrado !!!!! Oh meu Deus!!! Por que eu fiz essas etapas !!!!!!!!!!
FIREUSD
75

Este funciona:

cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm

Descrição: lista todos os links, remove os @caracteres e os remove.

conehead
fonte
11
Eu tentei todas as respostas fornecidas aqui, e foi essa que finalmente fez o truque.
Jsmith1287
25

Se você o instalou usando o instalador do PKG, poderá:

pkgutil --pkgs

ou melhor:

pkgutil --pkgs | grep org.python.Python

que produzirá algo como:

org.python.Python.PythonApplications-2.7
org.python.Python.PythonDocumentation-2.7
org.python.Python.PythonFramework-2.7
org.python.Python.PythonProfileChanges-2.7
org.python.Python.PythonUnixTools-2.7

agora você pode selecionar quais pacotes desvinculará (remover).

Esta é a documentação para desvincular:

 --unlink package-id
             Unlinks (removes) each file referenced by package-id. WARNING: This command makes no attempt to perform reference counting or dependency analy-
             sis. It can easily remove files required by your system. It may include unexpected files due to package tainting. Use the --files command first
             to double check.

No meu exemplo você digitará

pkgutil --unlink org.python.Python.PythonApplications-2.7
pkgutil --unlink org.python.Python.PythonDocumentation-2.7
pkgutil --unlink org.python.Python.PythonFramework-2.7
pkgutil --unlink org.python.Python.PythonProfileChanges-2.7
pkgutil --unlink org.python.Python.PythonUnixTools-2.7

ou em uma única linha:

pkgutil --pkgs | grep org.python.Python | xargs -L1 pkgutil -f --unlink

Importante: --unlink não está mais disponível a partir do Lion (a partir do primeiro trimestre de 2014 que incluiria Lion, Mountain Lion e Mavericks). Se alguém que segue estas instruções tentar usá-lo com o lion, tente adaptá-lo ao que esta postagem está dizendo: https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X

Gabriel Mazetto
fonte
4
Infelizmente, dependendo de pkgutilnão removerá todos os arquivos instalados pelo instalador do Python, porque alguns deles são criados durante os scripts de pós-instalação e, como tal, não são registrados.
Ned Deily
21

Tentando desinstalar o Python com

brew uninstall python

irá não remover o Python instalado nativamente, mas sim a versão instalada com brew.

Daniel Lee
fonte
9

Em relação à exclusão dos links simbólicos, achei útil.

find /usr/local/bin -lname '../../../Library/Frameworks/Python.framework/Versions/2.7/*' -delete
user86559
fonte
esta é uma idéia muito melhor do que analisar a saída lscomo na resposta aceita
spinup
8

Crie o link simbólico para a versão mais recente

 ln -s -f /usr/local/bin/python3.8 /usr/local/bin/python

Feche e abra um novo terminal

e tentar

 python --version
Athul Raj
fonte
Muito obrigado e da mesma maneira vale para o pip "ln -s -f / usr / local / bin / pip3 / usr / local / bin / pip" e depois "pip --version" também se você quiser atualizar o pip, use este comando "pip install --upgrade pip"
Moh Alaraabi
6

Não há necessidade de desinstalar versões antigas do python.

Apenas instale uma nova versão, digamos python-3.3.2-macosx10.6.dmg e altere o link flexível do python para o python3.3 recém-instalado

Verifique o caminho do python padrão e python3.3 com os seguintes comandos

"qual python" e "qual python3.3"

exclua o link virtual existente do python e aponte-o para python3.3

minhas23
fonte
10
Obrigado, mas isso não responde à minha pergunta. A questão não é se eu preciso desinstalar uma versão antiga do python para instalar uma nova versão.
Jan Deinhard 28/09
11
Essa parece ser a abordagem mais segura, pois, para mim, mexer com o que o sistema operacional coloca na máquina geralmente não sai tão bem. Eu também "obtive o pacote de instalação de python.org " depois de encontrar problemas de sintaxe das instruções python3 em um shell python2. Meu primeiro pensamento foi remover o python2 e usar o python3. No entanto, de posts anteriores que confirmam os perigos dessa ação. Essa foi a melhor solução para mim e segue a idéia de "usar links para redirecionar o comportamento". Além disso, o shell python3 já estava instalado, bastava digitar "python3" em vez de "python" no prompt.
precisa saber é o seguinte
@ minhas23 Como excluir o link virtual e criar um novo?
Doberkofler 01/09/19
5

Onur Güzel fornece a solução em seu blog, "Desinstalar o pacote Python do OS X .

Você deve digitar os seguintes comandos no terminal:

  1. sudo rm -rf /Library/Frameworks/Python.framework
  2. cd /usr/local/bin
  3. ls -l . | grep '../Library/Frameworks/Python.framework' | awk '{print $9}' | xargs sudo rm
  4. sudo rm -rf "/Applications/Python x.y"

    onde o comando xy é a versão do Python instalada. De acordo com sua pergunta, deve ser 2,7.

Nas palavras de Onur:

AVISO: Este comando removerá todas as versões do Python instaladas com os pacotes. O Python fornecido pelo sistema não será afetado.

Se você tiver mais de uma versão do Python instalada no python.org, execute o quarto comando novamente, alterando "xy" para cada versão do Python a ser desinstalada.

AQ
fonte
Isso resolveu meu problema, eu tenho o 2.7.10 e o brew instalado 2.7.15 e quando executei o "python", o 2.7.10 ainda não aparecia no 2.7.15, depois que sua ajuda está funcionando agora, obrigado
Radek
4

Nota : Se você instalou o Python usando o Homebrew, poderá seguir as seguintes etapas, caso contrário, procure outra solução!


Para desinstalar o Python 2.7.10 que você instalou usando o Homebrew, basta emitir o seguinte comando:

brew uninstall python

Da mesma forma, se você deseja desinstalar o Python 3 (que você instalou usando o Homebrew):

brew uninstall --force python3
John Mulhall
fonte
3

Não há necessidade de desinstalá-lo ou enlouquecer com links simbólicos, basta usar um alias. Eu enfrentei o mesmo problema ao atualizar para o python 3.7.1.
Apenas instale a nova versão do python usando brew install python, em seguida, .bash_profilecrie um alias apontando para a nova versão do python; assim: alias python="/usr/local/bin/python3"salve e execute source ~/.bash_profile.
Feito.

Roberto Manfreda
fonte
2

Se você estiver pensando em remover manualmente o Python 2.7 padrão da Apple, sugiro que você pendure e faça o seguinte: Parece que a Apple fará muito em breve por você:

Python 2.7 Descontinuado no OSX 10.15 Catalina

O Python 2.7 e Ruby e Perl estão obsoletos na Catalina: (pule para a seção "Tempo de execução da linguagem de script "> " Deprecações ")

https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_release_notes

Apple para remover Python 2.7 no OSX 10.16

De fato, se você não fizer nada, de acordo com o The Mac Observer , da versão 10.16 do OSX, o Python 2.7 desaparecerá do seu sistema:

https://www.macobserver.com/analysis/macos-catalina-deprecates-unix-scripting-languages/

Dada essa revelação, sugiro que o melhor curso de ação seja não fazer nada e aguarde a Apple limpá-la para você. Como a Apple está prestes a removê-lo para você, não parece valer o risco de mexer no seu ambiente Python.

NOTA : Vejo que a pergunta se refere especificamente ao OSX v 10.6.4 , mas parece que essa pergunta se tornou um ponto de articulação para todas as pessoas interessadas em remover o Python 2.7 de seus sistemas, independentemente da versão em execução.

F1Linux
fonte