Devemos usar python 2.6 ou 2.7 ou 3.x? [fechadas]

25

A versão do python que estou usando é 2.6 , e há um 2.7 e 3.x. Normalmente eu uso python para algum programa / snippet trivial. Sei que há uma grande diferença entre 2.xe 3.x. Eu realmente gostaria de saber, se vou fazer um projeto maior com python, qual versão do python devo usar?

Devo atualizar para o 2,7, ou para o 3.x ou ficar com o 2.6?

A decisão deve ser baseada nestes termos:

  1. Número de usuários na internet como uma comunidade. Mais usuários significam mais pacotes de código aberto e ajuda deles.

  2. Funcionalidade.

  3. Suporte da equipe oficial de desenvolvimento.

  4. Compatibilidade para módulo / pacote existente.

Obrigado!

lamwaiman1988
fonte
5
Alguém pode apontar alterações benéficas feitas pelo python 3.x?
lamwaiman1988
1
Você mencionou que sabe que a compatibilidade com os módulos existentes é um problema, mas não nos diz em quais módulos existentes o seu código se baseia. Esta questão é praticamente sem resposta.
Wooble 23/08/19
2
fora do assunto; recomendações E gorila vs tubarão em uma pergunta uau!
3
Esta pergunta e suas respostas serão úteis apenas por uma pequena janela de tempo. O que faz sentido agora pode não fazer muito sentido daqui a um ano, quando o 3.x se tornar mais maduro.
Bryan Oakley
Observando que (a) a pergunta ainda é relevante em 2014 (por exemplo, RobotFramework não funciona com o Python 3) e (b) o fechamento dessa pergunta mantém esta página obsoleta porque - mesmo que seja alta nos resultados de pesquisa do Google - novas respostas não pode ser postado.
22814 Bob Stein

Respostas:

27

Eu sugeriria o Python 2.7. É a versão mais recente da série Python 2.x. A maioria dos módulos Python é feita para funcionar com o Python 2.x. Existe um movimento para tentar migrar para o Python 3, mas qualquer um dos módulos do Python 3 é escrito para 2 e 3. Lembre-se de não usar recursos antigos que não estão disponíveis no Python 3, para que você possa apenas 2to3 seu código para faça rodar em Python 3.

Se você usa o Python 3, é um dos primeiros a adotar e provavelmente precisará instruir outras pessoas a baixar o Python 3 (muitos computadores terão apenas o Python 2). Por outro lado, novos recursos virão apenas para o Python 3. O Python 2 está permanentemente em manutenção. Então, eu não sugeriria ainda usar o Python 2 em 10 anos.

Se você deseja manter um olho nos pacotes Python e sua compatibilidade com o Python 3, pode ficar de olho neste site: http://python3wos.appspot.com/

jsternberg
fonte
django não suporta 3.x? Então, o usuário familiarizado com o django simplesmente não pode usar o 3.x?
precisa saber é o seguinte
Normalmente, quando uma nova versão é lançada, significa que é melhor que a anterior. E por que o python está sendo lançado na série 2.x e outro na série 3.x? Qual é a diferença real neles.
HOT
4
O Python 3 fez algumas alterações na linguagem que são benéficas, mas elas não são compatíveis com alguns dos recursos do Python 2. Portanto, algumas coisas foram removidas e adicionadas (e as coisas removidas as tornam incompatíveis).
jsternberg
1 para 2,7, melhor relação de compatibilidade (pelo menos para as bibliotecas que usam) até 3 é mais generalizada
wildpeaks
@Ashinkn As alterações podem ser encontradas aqui docs.python.org/3.0/whatsnew/3.0.html . A principal alteração que quebra a compatibilidade é a opção de usar Unicode (em oposição ao ASCII) como o tipo de string padrão. Onde as pessoas usavam cadeias de caracteres como byte [] antes que exista um novo tipo de matriz de bytearay. Além disso, quaisquer sequências 2x definidas explicitamente como unicode precisam ser alteradas para sequências regulares.
Evan Plaice
19

Minha opinião é que precisamos começar a levar as pessoas ao Python 3 e, se houver bibliotecas que não sejam compatíveis com o Python 3, precisamos começar a fazer isso não acontecer.

Python 3 é o futuro da linguagem e, quanto mais código escrevermos usando, melhor.

Musaab
fonte
O que precisamos é de um único intérprete que seja compatível com as duas versões do python e possa analisá-las de maneira inteligente. Ou seja, o referido intérprete compilaria python2 e python3 no mesmo bytecode para que sejam compatíveis, possibilitando o uso de python3 com uma biblioteca python2. Se C, C ++ e Java puderem fazê-lo, também o Python.
Braden Best
4

O Django agora "experimentalmente" suporta Python 3.2+, como você pode ver em seus posts aqui .

Dado isso, e o fato de o Python 3.x ser o futuro da linguagem, eu diria que o Python 3 é o melhor agora.

CorayThan
fonte
2

Para cada projeto, verifique se todas as bibliotecas necessárias para um projeto já possuem o suporte ao python 3.x e use o python 3.x porque é futuro e é a última versão estável oficial.

Caso contrário, use o que for necessário para compatibilidade da biblioteca.

cnd
fonte
2

Realmente não importa se você usa o Python 2.7 ou o Python 3. Se você não usa recursos antigos no Python 2.7, pode apenas 2to3 seu código para executá-lo no Python 3.

Ramchandra Apte
fonte
0

Eu estava no mesmo barco anteriormente e foi isso que encontrei. O Python 2.6, 2.7 e 3.2 pode ser instalado lado a lado usando o MacPorts e pode ser facilmente alternado. (Eu sou um usuário de Mac). Procure alternativas ao Macports para sua plataforma.

ThinkCode
fonte
0

Até que uma ponte seja desenvolvida intrinsecamente dentro do 3.x para permitir o uso transparente de pacotes 2.7, uma movimentação é repleta de perigos, porque o idioma realmente trata do que foi contribuído para ela. Considerações formais e pureza são insignificantes em comparação. É provável que essa ponte transparente não ocorra por pura teimosia pedante e desconsideração pela base de usuários.

Don Gateley
fonte
Uma ponte tão transparente é inatingível. Os pacotes 2to3 e seis fornecem uma ponte ampla, mas estão longe de serem transparentes.
Martijn Pieters