Pergunta

Se eu fosse iniciar um projeto de código aberto usando Python, qual versão deveria usar para garantir que a grande maioria dos usuários possa usá-lo em seus sistemas?

Sou o tipo de pessoa que passa rapidamente para a próxima versão (o que farei quando o Python 3 for lançado), mas muitas pessoas podem ser mais conservadoras se a versão atual parecer estar funcionando bem.Qual versão atingiria o ponto ideal, mas ainda me permitiria aproveitar os aprimoramentos de linguagem mais recentes e interessantes?

Foi útil?

Solução

Como o python está em uma fase de transição para o python 3 com quebra de compatibilidade com versões anteriores, não acho que seja uma boa ideia usar apenas o python 3.Com base no Linha do tempo haverá pelo menos um ou dois lançamentos seguintes da série 2.x após 2.6/3.0 em outubro.

Além de não ter o python 3 disponível em suas plataformas de destino, levará algum tempo até que importantes bibliotecas externas do python sejam portadas e possam ser usadas no python 3.

Então, como Matthew sugere ficar em 2,4/2,5 e manter o transição planejar o python 3 em mente é uma escolha sólida.

Outras dicas

Faz algum tempo que não vejo um sistema com menos de 2.3 instalado.Principalmente 2.4+ é instalado por padrão para a maioria dos sistemas operacionais que uso agora.2.3 está apenas em uma máquina Solaris mais antiga.As distribuições Linux tendem a ter 2.4+, assim como o OS X.

IIRC, 2.4 tem muitos dos recursos 2.5, mas pode ser usado apenas com

from __future__ import *

Você pode usar diferentes versões do python em cada máquina.

Codificando algo novo, eu não usaria nada menos que python2.5.Você pode fazer apt-get install python2.5 no estoque debian estável.

Para Windows, realmente não se preocupe com isso.É muito fácil instalar o msi python2.5.

Se os usuários não se incomodarem em fazer isso, você pode implantar um executável com py2exe (tão simples) e construir um instalador com inno setup (novamente simples), então ele se comportará como um aplicativo padrão do Windows e usará suas próprias dlls python , então não há necessidade de ter o python instalado.

Como Pedro disse:tenha em mente a transição para o 3.0, mas não desenvolva isso ainda.

Python 2.3 ou 2.2 se você conseguir viver sem os muitos módulos que foram adicionados (por exemplo,datetime, csv, logging, optparse, zipimport), não estão usando SSL e estão dispostos a adicionar padrão para Verdadeiro/Falso.

2.4 decoradores adicionados.expressões geradoras, reversed(), sorted() e os módulos de subprocesso e decimais.Embora todos sejam legais, é fácil escrever código Pythonic sem eles (assumindo que seu projeto não faria uso intenso deles).

2.5 adicionado com importações relativas, melhor suporte a 64 bits e bastante velocidade.Você poderia viver sem tudo isso com bastante facilidade.

2.6 não foi lançado (embora esteja muito próximo), portanto, embora possa agradar aos desenvolvedores, não tem a compatibilidade que você procura.

Dê uma olhada nas notas de lançamento do 2.3, 2.4, 2.5 e do próximo 2.6 (use http://www.python.org/download/releases/2.Y/highlights/ onde 'Y' é a versão secundária).

FWIW, para SpamBayes oferecemos suporte a 2.2 e superior (2.2 requer a instalação do pacote de e-mail separadamente).Isso não é muito desgastante, mas as adições do 2.3 são úteis o suficiente e o 2.3 é antigo o suficiente para que provavelmente abandonaremos o 2.2 em breve.

Se o projeto for mainstream e for executado em Linux, o apenas a escolha sensata é 2.4 - apenas porque é difícil instalar qualquer outra coisa como padrão em Enterprise Linuxes.

Em qualquer caso, qualquer moderno O sistema operacional terá/pode ter 2.4 ou mais recente.

Você deveria usar Pitão 2.7, a versão principal final do Python 2.

Atualmente, o Python 3.x tem suporte limitado a bibliotecas de terceiros e geralmente não é instalado por padrão.Então você está olhando para a série 2.x.

Python 2.7 é essencialmente totalmente compatível com versões anteriores do 2.xs.Além disso, ele pode fornecer avisos de depreciação sobre coisas que não funcionarão no Python 3.(Particularmente, valerá a pena manter testes unitários e ser pedante em relação a Unicode vs.strings de bytes.) Os avisos forçarão você a escrever um bom código que o automatizado 2to3 ferramenta será capaz de traduzir para Python 3.

Guido van Rossum recomenda oficialmente manter uma única base de código Python 2, e usando 2to3 junto com testes de unidade para produzir versões compatíveis para Python 2 e 3.(Desde que o PEP 3000 foi escrito, o Python 2.6 foi substituído pelo 2.7.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top