Dependendo do sistema, python
== python2
ou python
== python3
.
Scripts executáveis em Python, começa com:
#!/usr/bin/env python
#!/usr/bin/env python2
#!/usr/bin/env python3...
Para python py3k, ele é fornecido na documentação. Devo / posso usá-lo com o número da versão ; portanto, faço isso:
#!/usr/bin/env python3
Mas eu encontrei um problema com scripts py2k.
Enquanto na documentação py2k está escrito para uso: #! /usr/bin/env python
,
em alguns * nix-es python py3k é o padrão, então python == python3. (Por exemplo , pacote python do ArchLinux , aqui arquivos do pacote python ).
Como empacotar (configurar, criar) e / ou preparar scripts python para distribuição para lidar com isso?
Eu pergunto sobre a criação de pacotes de software que podem ser executados facilmente pelos usuários (sem modificar o ambiente)
Posso fazer o mesmo truque para scripts python py2k e scripts python py3k e defini-lo como #!/usr/bin/env python2
:? Posso ter certeza de que cada distribuição python py2k contém python2
arquivo, então #!/usr/bin/env python2
funcionará?
Se sim, por que não é proposto como padrão, por exemplo, na documentação python py2k ?
python2
. Gostaria de saber por que não é padrão usá-lo quando há py2k e py3k e o padrão python
pode ser diferente. E o seu conselho sobre a remoção - não é adequado a este exemplo, porque pergunto sobre a embalagem. Eu gostaria de fazer um pacote que possa ser executado em diferentes configurações / sistemas. Não há como modificar o ambiente. E quanto a verificação - não se aplica a Shebang - até onde eu sei.
#!...python2
em seus programas e, se estiver usando Python 3.x, use #!...python3
. Não confie no sistema operacional para ter o link certo se você souber que ele funcionará apenas em uma versão específica. Eu trabalho com sistemas que ainda possuem o Python 1.5.2 instalado como /usr/bin/python
- ou escrevo código para lidar com versões mais antigas do Python ou uso python2
.
python2
executável no meu sistema (compressão Debian). python
é um link simbólico para python2.6
, e python3
é um link simbólico para python3.1
, mas não existe python2
.
python2
-lo para executá-lo (se instalado) e sempre pode verificar a versãopython -V
. se você quiser quepython
seja 2 ou 3, você deverm /usr/bin/python
criar um link simbólico que aponte para sua versão desejada do python, por exemploln -s /usr/bin/python2.5 /usr/bin/python
.