Eu digito pythonem uma janela do terminal. Eu recebo o Python 2.7 e não o Python 3.5. De acordo com a documentação, o Python 3.5 deve vir pré-carregado.
Se você configurar um ambiente virtual usando: "python3 -m venv my-venv", a partir de qualquer terminal, ative esse ambiente virtual chamando "source ... / my-env / bin / enable", o python 3.5 será o padrão nesse terminal. Você pode verificar a versão padrão atual chamando "python -V".
Craig Hicks
enquanto sua resposta é útil, perguntei o porquê. não como. e esse é o grande debate. aqui. por que uma versão mais antiga, por padrão, em vez da versão atual.
Givonz
1
Você está exatamente correto sobre o meu "comentário"! Por isso escrevi um comentário e não uma resposta.
Craig Hicks
Respostas:
56
Não sei o que "docs" você está lendo nem o que eles dizem, mas /usr/bin/pythoné apenas um link simbólico para a versão padrão do python, neste caso 2.7, que é o resultado de apenas digitar pythonno terminal. Este é o resultado do PEP 394, que define que
por enquanto, todas as distribuições devem garantir que pythonse refiram ao mesmo destino quepython2 .
type pythone file /usr/bin/pythonconfirmará isso.
A razão para esse arranjo que não seja a convenção é que o pacote de código - fonte python-default do Xenial é a versão 2.7.11 , portanto o link simbólico do python aponta para esta versão.
Para usar o python 3, você deve ser explícito e digitar python3na linha de comando, o que é recomendado caso você precise de uma versão específica, isso também pode ser feito com o python 2, digitando python2. O Ubuntu inclui as versões python 2 e 3 por padrão em todas as versões atuais.
Para obter o Python 3.5 REPL ou executar um script compatível, digite python3. Isso é para manter a compatibilidade com todo o python 2.x herdado (que sempre foi e permanecerá vinculado python).
O traço pode ser encontrado pythonse você configurar um .desktoparquivo para ele (pol ~/.local/share/applications/), para abrir um terminal e iniciar o REPL, por exemplo. Não existe um ambiente GUI REPL padrão para python, e as expectativas normais da interface são de que o usuário iria ao terminal.
A palestra de que o python 3.5 é o padrão é os mantenedores que transportam todos os scripts do sistema do python 2.x para o python 3.x, não que o python 3 substitua o python 2 em todos os casos.
Então, acho que a pergunta correta é: como adiciono python3 no meu caminho, para que ele seja executado automaticamente?
Givonz
você quer dizer, como você obtém scripts python para executar como um programa compilado?
Andrew Keech
entendi obrigado. basta digitar python3 no prompt de comando.
Givonz
2
AIUI o que fazer com / usr / bin / python a longo prazo ainda é uma questão em aberto. A melhor prática para scripts python2 seria usar python2 explicitamente.
Peter Green
1
em vez de usar #!/usr/bin/python3(ou #!/usr/bin/python2) em scripts, é melhor usar (apenas para python, especificamente) #!/usr/bin/env python3se você quiser que seja remotamente portátil. Na maioria das vezes, isso é apenas documentação, pois em muitos casos será chamado de $ python3 your_pyprogram.pyqualquer maneira.
5136 Michael
4
Você assume que o Python padrão deve estar disponível como python. Essa suposição está errada.
Em um sistema que vem com o Python 3 "pré-carregado" e sem o Python 2, haverá apenas python3e não python.
O código escrito para o Python 3 deve sempre procurar um intérprete chamado python3. O código escrito para o Python 2 procurará historicamente python.
Pode chegar um momento, possivelmente daqui a algumas décadas, em que quase ninguém se lembra do Python 2, quando pythonpode começar a se referir python3. Isso seria puramente por conveniência, e pode e não deve ser feito prematuro, se é que existe! Não há pressa, devido ao seguinte impacto:
Os sistemas “antigos atuais” não terão conhecimento python2, apenas python, portanto, faz todo o sentido manter o código Python 2 procurando python. Esta é a razão pela qual pythondeve se referir ao Python 2 para "enquanto existir o código Python 2".
Um novo código escrito para Python 2, se isso faz sentido, pode ser perfeitamente procurado python. Ele também pode procurar python2, se se destina a ser executado apenas em sistemas compatíveis e bem preparados para o Python 3 (que devem oferecer esse link).
O benefício do uso do código Python 2 python2seria que ele não precisa de toque extra quando pythoncomeça a se referir a python3, o que pode nunca acontecer, ou pythondesaparece uma vez , o que pode ou não acontecer. (Isso pode se tornar realidade, se o código Python 2 desaparecer depois que o hipotético Python 4 se tornar popular com seu intérprete python4. - Porque deixá-lo apontar para um python3ou python4ambos seria confuso.)
como você digita o mesmo comando e obtém 2 resultados diferentes?
Givonz
4
a saída diferente da segunda chamada de pythoné de use <tab>para consultar o preenchimento automático, que emite as possíveis permutações de python*e retorna para um novo prompt.
Andrew Keech
@givonz, hmm Eu usei a tecla TAB bro. não é saída. é possível padrão binário.
25416
Votação negativa para quê?
rɑːdʒɑ
2
Não diminuí a votação, mas acho que a resposta deve explicar por que as 2 primeiras saídas são diferentes e qual é o papel delas apt-cache, especialmente para iniciantes do Ubuntu.
AL
2
O Python 3.x deve funcionar com 16.04 - Na verdade, definitivamente funcionará. Eu tenho o Ubuntu 14.04 e o Python 3.4.3 - Tudo o que você precisa fazer para testá-lo é digitar python3e deve informar qual versão você está executando.
Bem, eu não chamaria de usar uma ciência da computação do sistema operacional. E estritamente falando: o Ubuntu é um sistema operacional baseado em Linux e não em Unix.
Magu_ 25/05
Eu ainda tenho que entender o diff bet linux e unix, além de alguns prompts de comando e comandos diferentes, mas com palavras estreitas. embora o gui seja muito mais avançado do que o que vejo no solaris.
Respostas:
Não sei o que "docs" você está lendo nem o que eles dizem, mas
/usr/bin/python
é apenas um link simbólico para a versão padrão do python, neste caso 2.7, que é o resultado de apenas digitarpython
no terminal. Este é o resultado do PEP 394, que define quetype python
efile /usr/bin/python
confirmará isso.A razão para esse arranjo que não seja a convenção é que o pacote de código - fonte python-default do Xenial é a versão 2.7.11 , portanto o link simbólico do python aponta para esta versão.
Para usar o python 3, você deve ser explícito e digitar
python3
na linha de comando, o que é recomendado caso você precise de uma versão específica, isso também pode ser feito com o python 2, digitandopython2
. O Ubuntu inclui as versões python 2 e 3 por padrão em todas as versões atuais.Existem planos para migrar tudo para o python 3 e marcá-lo como padrão.
fonte
Para obter o Python 3.5 REPL ou executar um script compatível, digite
python3
. Isso é para manter a compatibilidade com todo o python 2.x herdado (que sempre foi e permanecerá vinculadopython
).O traço pode ser encontrado
python
se você configurar um.desktop
arquivo para ele (pol~/.local/share/applications/
), para abrir um terminal e iniciar o REPL, por exemplo. Não existe um ambiente GUI REPL padrão para python, e as expectativas normais da interface são de que o usuário iria ao terminal.A palestra de que o python 3.5 é o padrão é os mantenedores que transportam todos os scripts do sistema do python 2.x para o python 3.x, não que o python 3 substitua o python 2 em todos os casos.
fonte
#!/usr/bin/python3
(ou#!/usr/bin/python2
) em scripts, é melhor usar (apenas para python, especificamente)#!/usr/bin/env python3
se você quiser que seja remotamente portátil. Na maioria das vezes, isso é apenas documentação, pois em muitos casos será chamado de$ python3 your_pyprogram.py
qualquer maneira.Você assume que o Python padrão deve estar disponível como
python
. Essa suposição está errada.Em um sistema que vem com o Python 3 "pré-carregado" e sem o Python 2, haverá apenas
python3
e nãopython
.O código escrito para o Python 3 deve sempre procurar um intérprete chamado
python3
. O código escrito para o Python 2 procurará historicamentepython
.Pode chegar um momento, possivelmente daqui a algumas décadas, em que quase ninguém se lembra do Python 2, quando
python
pode começar a se referirpython3
. Isso seria puramente por conveniência, e pode e não deve ser feito prematuro, se é que existe! Não há pressa, devido ao seguinte impacto:Os sistemas “antigos atuais” não terão conhecimento
python2
, apenaspython
, portanto, faz todo o sentido manter o código Python 2 procurandopython
. Esta é a razão pela qualpython
deve se referir ao Python 2 para "enquanto existir o código Python 2".Um novo código escrito para Python 2, se isso faz sentido, pode ser perfeitamente procurado
python
. Ele também pode procurarpython2
, se se destina a ser executado apenas em sistemas compatíveis e bem preparados para o Python 3 (que devem oferecer esse link).O benefício do uso do código Python 2
python2
seria que ele não precisa de toque extra quandopython
começa a se referir apython3
, o que pode nunca acontecer, oupython
desaparece uma vez , o que pode ou não acontecer. (Isso pode se tornar realidade, se o código Python 2 desaparecer depois que o hipotético Python 4 se tornar popular com seu intérpretepython4
. - Porque deixá-lo apontar para umpython3
oupython4
ambos seria confuso.)fonte
Python ambas as versões 2.x, 3.x estão disponíveis. se você chamar python, como é indicado no python 2.x, ele carregará o python 2.x
A imagem abaixo o ajudará.
fonte
python
é de use<tab>
para consultar o preenchimento automático, que emite as possíveis permutações depython*
e retorna para um novo prompt.apt-cache
, especialmente para iniciantes do Ubuntu.O Python 3.x deve funcionar com 16.04 - Na verdade, definitivamente funcionará. Eu tenho o Ubuntu 14.04 e o Python 3.4.3 - Tudo o que você precisa fazer para testá-lo é digitar
python3
e deve informar qual versão você está executando.fonte