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.