Estou executando o Windows e o shell / OS executa o Python automaticamente com base nas configurações do registro quando você executa um programa na linha de comando. Isso será interrompido se eu instalar as versões 2.xe 3.x do Python na mesma máquina?
Quero jogar com o Python 3 enquanto ainda consigo executar scripts 2.x na mesma máquina.
python
windows
python-3.x
compatibility
mentiroso
fonte
fonte
/usr/bin/python
e o Python 3.3 at/usr/bin/python3
. Também fornece nomes diferentes para o Pip e o IPython do Python3. Muito conveniente.Respostas:
A solução oficial para a coexistência parece ser o Python Launcher para Windows , PEP 397, incluído no Python 3.3.0 . Instalar os despejos
py.exe
epyw.exe
ativadores de lançamento em%SYSTEMROOT%
(C:\Windows
) que são associadospy
epyw
scripts, respectivamente.Para usar o novo iniciador (sem configurar manualmente suas próprias associações), deixe a opção "Registrar extensões" ativada. Não sei bem por que, mas na minha máquina ele deixou o Py 2.7 como o "padrão" (do iniciador).
A execução de scripts chamando-os diretamente da linha de comando os roteará pelo iniciador e analisará o shebang (se existir). Você também pode chamar explicitamente os interruptores lançador e de uso:
py -3 mypy2script.py
.Todos os tipos de shebangs parecem funcionar
#!C:\Python33\python.exe
#!python3
#!/usr/bin/env python3
bem como abusos arbitrários
#! notepad.exe
fonte
py.exe
deve usar como padrão para o lançamento PY3 sobre Py2 quando nenhuma versão for especificado e o arquivo contém nenhuma linha shebangwhere.exe pip
. Eu acho que o instalador do Python 3 instala umpip3
alias para seu pip, mas você também pode fazer algo comopy -3 -m pip install requests
eu acho.Aqui está a minha configuração:
C:\Python34
(o caminho de instalação padrão) e altere python.exe para python3.exeC:\Python27\;C:\Python27\Scripts\;C:\Python34\;C:\Python34\Scripts\;
Agora, na linha de comando, você pode usar o
python
2.7 e opython3
3.4.fonte
pip
em CLI?pip
e,pip3
respectivamente.Você pode ter os dois instalados.
Você deve escrever isso na frente do seu script:
ou, eventualmente ...
Atualizar
Minha solução funciona perfeitamente com o Unix, depois de uma rápida pesquisa no Google , aqui está a solução do Windows:
A mesma coisa: na frente do seu script.
fonte
A partir da versão 3.3, o Python introduziu o utilitário Launcher for Windows https://docs.python.org/3/using/windows.html#python-launcher-for-windows .
Para poder usar várias versões do Python:
fonte
py -3 filename.py
.Estou usando 2.5, 2.6 e 3.0 do shell com scripts de lote de uma linha do formulário:
Nomeie-os
pythonX.Y.bat
e coloque-os em algum lugar do seu CAMINHO. Copie o arquivo para a versão secundária preferida (ou seja, a mais recente) parapythonX.bat
. (Por exemplocopy python2.6.bat python2.bat
.) Então você pode usarpython2 file.py
de qualquer lugar.No entanto, isso não ajuda ou afeta a situação de associação de arquivos do Windows. Para isso, você precisará de um programa iniciador que leia a
#!
linha e associe-o aos arquivos .py e .pyw.fonte
Quando você adiciona tanto a variáveis de ambiente haverá um haver um conflito porque os dois executável tem o mesmo nome:
python.exe
.Apenas renomeie um deles. No meu caso, mudei o nome para
python3.exe
.Então, quando eu corro,
python
ele executa,python.exe
que é 2,7, e quando eu corro,python3
ele executa,python3.exe
que é 3,6fonte
Fatal error in launcher: Unable to create process using '"c:\users\<my_username>\appdata\local\programs\python\python37-32\python.exe" "C:\Users\<my_username>\AppData\Local\Programs\Python\Python37-32\Scripts\pip.exe" '
.Aqui está...
winpylaunch.py
Acabei de ler isso neste tópico (porque é o que eu estava precisando também). Eu tenho o Pythons 2.6.1 e 3.0.1 no Ubuntu e no Windows. Se não funcionar, você pode postar correções aqui.
fonte
sys.exit(process.returncode)
para propagar o status de saída do script chamado para o chamador.Tanto quanto eu sei, o Python foge da linha de comando usando a variável PATH em vez de uma configuração do registro.
Portanto, se você apontar para a versão correta no seu PATH, você a usará. Lembre-se de reiniciar o prompt de comando para usar as novas configurações de PATH.
fonte
A instalação do Python normalmente associa
.py
,.pyw
e.pyc
arquivos com o interpretador Python. Portanto, você pode executar um script Python clicando duas vezes no Explorer ou digitando seu nome em uma janela da linha de comando (portanto, não é necessário digitarpython scriptname.py
, bastascriptname.py
fazê-lo).Se você deseja alterar manualmente essa associação, você pode editar essas chaves no registro do Windows:
Python Launcher
As pessoas têm vindo a trabalhar sobre um lançador de Python para Windows: um programa leve associada
.py
e.pyw
arquivos que iria procurar uma linha "shebang" (semelhante ao Linux et al) na primeira linha, e lançar Python 2.x ou 3.x como requeridos. Consulte a postagem do blog "Um lançador Python para Windows" para obter detalhes.fonte
Tente usar o Anaconda.
Usando o conceito de ambientes Anaconda, digamos que você precise do Python 3 para aprender programação, mas não quer acabar com o ambiente do Python 2.7 atualizando o Python. Você pode criar e ativar um novo ambiente chamado "snakes" (ou o que quiser) e instalar a versão mais recente do Python 3 da seguinte maneira:
É mais simples do que parece, veja a página de introdução aqui: Introdução ao Anaconda
E, para lidar com o problema específico de ter as versões 2.xe 3.x funcionando lado a lado, consulte: Gerenciando versões do Python com o Anaconda
fonte
Aqui está como executar o Python 2 e 3 na mesma máquina
O Python Launcher para Windows foi incorporado ao Python desde a Versão 3.3, como prometido em 2011, quando o Stand alone estreou pela primeira vez:
Iniciador do Python para Windows
fonte
Aqui está uma maneira pura e limpa de instalar o Python2 e o Python3 no Windows.
https://datascience.com.co/how-to-install-python-2-7-and-3-6-in-windows-10-add-python-path-281e7eae62a
Meu caso: eu tive que instalar o Apache cassandra. Eu já tinha Python3 instalado no meu D: unidade . Com muito trabalho de desenvolvimento em andamento, eu não queria mexer na minha instalação do Python3. E eu precisava do Python2 apenas para o Apache cassandra.
Então, eu tomei as seguintes etapas:
C:\Python27;C:\Python27\Scripts
)python2 --version
) e Python 3 (python --version
).Portanto, minha instalação do Python3 permaneceu intacta.
fonte
Eu acho que existe uma opção para configurar a associação de arquivos do Windows para arquivos .py no instalador. Desmarque e você deve ficar bem.
Caso contrário, você poderá associar facilmente os arquivos .py à versão anterior. A maneira mais simples é clicar com o botão direito do mouse em um arquivo .py, selecionar "abrir com" / "escolher programa". Na caixa de diálogo exibida, selecione ou navegue até a versão do python que você deseja usar por padrão e marque a caixa de seleção "sempre use este programa para abrir esse tipo de arquivo".
fonte
Você deve garantir que a variável de ambiente PATH não contenha os dois arquivos python.exe (adicione o que você está usando no momento para executar scripts no dia a dia) ou faça o que Kniht sugeriu nos arquivos em lote. Além disso, não vejo por que não.
PS: Eu tenho 2.6 instalado como meu python "primário" e 3.0 como meu python "play" . O 2.6 está incluído no PATH . Tudo funciona bem.
fonte
Antes de instalar corajosamente os dois simultaneamente, eu tinha muitas perguntas. Se eu der python, ele irá para py3 quando eu quiser py2? pip / virtualenv acontecerá sob py2 / 3?
Parece ser muito simples agora.
Apenas instale cegamente os dois. Certifique-se de obter o tipo certo (x64 / x32). Enquanto / após a instalação, inclua no caminho as variáveis de ambiente .
Substitua x no comando acima para definir o caminho.
Então vá para as duas pastas.
Navegar para
e renomeie pip para pip3.
Se o pip3 já existir, exclua o pip. Isso garantirá que apenas o pip seja executado no python2 . Você pode verificar por:
Caso você queira usar pip com python3 , basta usar
Da mesma forma, você pode fazer o mesmo com o arquivo python e outros.
Felicidades!
fonte
Fácil, depois de instalar as duas versões do python, adicione os caminhos às variáveis de ambiente; consulte . Em seguida, vá para as pastas python 2 e python 3 e renomeie-as para python2 e python3 respectivamente, como mostrado e . Agora, no cmd, digite python2 ou python3 para usar a versão necessária, consulte .
fonte
Eu diria que tenho Python 2.4, 2.5 e 2.6 instalado lado a lado no mesmo computador.
fonte
Estou apenas começando com python agora. Estou lendo o livro de Zed Shaw, "Aprenda Python da maneira mais difícil", que requer a versão 2.x do python, mas também estou fazendo uma aula que exige o python 3.x
Então aqui está o que eu fiz.
"[AMBIENTE] :: SETENVIRONMENTVARIABLE (" PATH "," $ ENV: PATH; C: \ PYTHON27 "," USER ")" (sem aspas externas)
AGORA para python 3.x
Simples, o download do python 3.x vem com o aplicativo python para windows. Portanto, basta fixar o aplicativo Python para Windows na barra de tarefas ou criar atalhos na área de trabalho e pronto!
Abra o Python para Windows para 3.x
Abra o PowerShell para python 2.x
Eu espero que isso ajude!
fonte
Hmm .. eu fiz isso agora fazendo o download do Python 3.6.5 para Windows em https://www.python.org/downloads/release/python-365/ e verifiquei se o lançador seria instalado. Em seguida, segui as instruções para usar o python 2 e o python 3. Reinicie o prompt de comando e use-o
py -2.7
para usar o Python 2 e /py
ou opy -3.6
Python 3. Você também pode usarpip2
para o Python 2pip
e opip
Python 3pip
.fonte
Eu tive o mesmo problema em que queria usar python3 na maioria dos trabalhos, mas o IDA pro exigia python2. Então, aqui está o que eu fiz.
Criei três variáveis na variável de ambiente do usuário da seguinte maneira:
Agora eu adicionei
à variável PATH. Então, basicamente dizendo que o que quer que este "PYTHON_ACTIVE" contenha é o python ativo. Alteramos programaticamente o conteúdo de "PYTHON_ACTIVE" para alternar a versão do python.
Aqui está o script de exemplo:
Este script usa a versão python como entrada e, portanto, copia HOME_PYTHON27 ou HOME_PYTHON38 para PYTHON_ACTIVE. Alterando assim a versão global do Python.
fonte