Como posso remover o python 2.7 depois de instalar o python 3.3?


19

Instalei com sucesso o python 3.3 no Ubuntu 12.10. Como não preciso de várias versões do python, quero remover o python 2.7 existente. Quando tento fazer isso, usando

sudo apt-get remove python2.7

O Ubuntu me avisa que existem muitos componentes dependentes do sistema que também serão removidos. Parece realmente assustador.

Portanto, existe uma maneira de remover o python 2.7 sem remover os componentes dependentes do sistema ou posso direcionar esses dependentes para usar o python 3.3?


2
Eu não recomendaria. A versão do Python não é tão compatível, portanto, scripts mais antigos podem ter problemas se você não tiver a versão correta.
— tikend

você está certo, python3.3 declarou que é incompatível com python 2.7. Então, é melhor eu continuar com isso. Obrigado pelo conselho!
— Phoenix bai

Respostas:


23

Você não pode.

No wiki do Ubuntu / Python :

Planos de longo prazo (por exemplo, 14.04)

Mova o Python 2 para o universo, porte todos os aplicativos Python principalmente para o Python 3. Nós nunca vamos nos livrar completamente do Python 2.7, mas como também nunca haverá um Python 2.8, e o Python 2.7 terá quase 4 anos quando Na versão 14.04 LTS, é hora de relegar o Python 2 para o universo.

Isso significa que muitos pacotes base têm dependências rígidas do 2.7 e ainda levará muito tempo para migrar as coisas. Observe que o Python 3 possui inúmeras alterações incompatíveis com versões anteriores - não é uma atualização regular do pacote.

Se você realmente deseja se livrar do Python 2.7, terá que aguardar o lançamento do 14.04, mas não há garantia.


3
Agora são 16.04.
— Muni

Agora são 18.04.
— Francesco Pasa

É 19.04 fu #! & Agora
— Genarito

5

Você não pode e realmente não quer.

O Python mudou drasticamente entre 2.7 e 3.0 e quebrou a compatibilidade com versões anteriores. Os scripts Python que foram escritos para 2.7, usados ​​para suportar uma grande quantidade de infraestrutura do sistema, não necessariamente funcionarão corretamente com o Python 3.x. Esses scripts precisam ser atualizados para funcionar com a nova versão e, até que isso aconteça, você precisará manter o Python 2.7 por perto.

É por isso que você percebe um número tão grande de dependências no Python antigo - o sistema depende disso. Além disso, não há mal algum em ter as duas versões do Python instaladas no mesmo sistema. E você pode se deparar com aplicativos no futuro que ainda usam o Python 2.7, portanto, mantê-lo por perto é uma boa idéia.


2

Vim aqui em 2019 porque desenvolvo no Python3 por padrão e cheguei à mesma conclusão que o OP depois de ver o que seria removido após a execução apt purge python

Desde que eu realmente queria chamar Python3 com apenas python, eu corri

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python

Dessa forma, se o Python2.7 ainda for necessário, ele poderá ser chamado explicitamente com a python2.7simples chamadapython será padronizada para o Python3 por causa do link simbólico.

Eu não tenho nenhum script de nível básico que chame python2.7 com, pythonportanto essa mudança não seria perturbadora - enquanto outros sistemas precisariam que seus scripts fossem ajustados de acordo.

A principal barreira para uma distribuição que alterna o comando python de python2 para python3 não é a quebra na distribuição, mas a quebra de scripts privados de terceiros desenvolvidos por sysadmins e outros usuários.

- O comando "python" em sistemas similares ao Unix

Esta resposta não é uma resposta direta ao OP, mas como alguém que teve uma pergunta semelhante, essa é a funcionalidade que eu estava procurando quando pensava em remover o 2.7. Em vez de excluir, basta priorizar qual deles será usado python.


1
Parece-me uma má ideia. Quaisquer scripts antigos criados para o Python 2 serão chamados /usr/bin/python, enquanto quase todos os scripts criados para o Python 3 estarão cientes da mudança e serão chamados python3no momento. Deixar de pythonapontar para python2.7é menos provável que quebrar coisas.
— vidarlo

Eu diria que depende do ambiente, como eu disse que não faço scripts que exigem python2 e funcionam em 3 - enquanto, se eu fizesse uma alteração como essa em uma de nossas estações no trabalho executando scripts automatizados, isso seria muito perturbador. .
— saniboy

Existem processos específicos do sistema que você poderia listar essa chamada / usr / bin / python? Estou sempre aberto a mudar de idéia quando
— recebo

Encontro alguns em 18.04. grep -r "/usr/bin/python" /usr/bin/deve fornecer uma breve visão geral. Provavelmente não desativará o sistema, mas poderá fazer com que algumas coisas não funcionem. Por exemplo solaar.
— vidarlo

1
No sistema que verifiquei, existem 39 que não fazem uma referência explícita a python3 ou python2. Todos esses são provavelmente python2. Claro que isso depende do que você instalou, mas também não vejo grandes razões para fazer isso ...
— vidarlo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.