Eu faço a maior parte da minha programação no Python 3.x no Windows 7, mas agora preciso usar a PIL (Imaging Library), o ImageMagick e o wxPython, que exigem o Python 2.x.
Posso ter o Python 2.xe o Python 3.x instalados no Windows 7? Quando executo um script, como "escolho" qual versão do Python deve executá-lo? Os programas mencionados acima poderão lidar com várias versões do Python instaladas ao mesmo tempo? Eu pesquisei por horas e horas sobre como fazer isso sem sucesso.
Obrigado.
Respostas:
Eu descobri que a maneira formal de fazer isso é a seguinte:
Basta instalar duas (ou mais, usando os instaladores) versões do Python no Windows 7 (para mim, trabalho com 3.3 e 2.7).
Siga as instruções abaixo, alterando os parâmetros para suas necessidades.
Crie a seguinte variável de ambiente (por padrão, clique duas vezes):
Para iniciar um script em um intérprete específico, adicione o seguinte shebang (início do script):
Para executar um script usando um intérprete específico, use o seguinte comando:
Para iniciar um intérprete específico:
Para iniciar o intérprete padrão (definido pela variável PY_PYTHON):
Recursos
Documentação: Usando Python no Windows
PEP 397 - lançador Python para Windows
fonte
c:\python35;c:\python35\scripts;c:\python27\scripts;
. Isso permite o uso depip2
/pip3
, eeasy_install-2.7
/ emeasy_install-3.5
vez depip
eeasy_install
.py -m pip install ...
. Adicione os switches depoispy
para escolher em qual Python executar o pip, conforme acima.O que eu fiz foi baixar tanto o 2.7.6 quanto o 3.3.4. O Python 3.3.4 tem a opção de adicionar o caminho a ele na variável de ambiente para que isso tenha sido feito. Então, basicamente, eu apenas adicionei manualmente o Python 2.7.6.
Como...
Iniciar> no tipo de pesquisa no ambiente, selecione "Editar variáveis de ambiente na sua conta" 1
Role para baixo até Caminho, selecione o caminho, clique em editar.
Adicione C: \ Python27; então você deve ter caminhos para as duas versões do Python, mas se não o fizer, poderá editá-lo facilmente para fazer isso ..... C: \ Python27; C: \ Python33;
Navegue para a pasta Python27 em C: \ e renomeie uma cópia do python.exe para python2.exe
Navegue para a pasta Python34 em C: \ e renomeie uma cópia do python.exe para python3.exe
Teste: abra o prompt de comando e digite python2 .... BOOM! Python 2.7.6. sair.
Teste: abra o prompt de comando e digite python3 .... BOOM! Python 3.4.3. sair.
Nota: (para não quebrar os comandos pip nas etapas 4 e 5, mantenha a cópia do python.exe no mesmo diretório que o arquivo renomeado)
fonte
Eu tenho várias versões no Windows. Acabei de alterar o nome exe da versão que não estou usando como padrão.
Quanto aos instaladores de pacotes, a maioria dos instaladores exe permite escolher a instalação do python para adicionar o pacote também. Para instalação manual, verifique a opção --prefix para definir onde o pacote deve ser instalado:
http://docs.python.org/install/index.html#alternate-installation-windows-the-prefix-scheme
fonte
pip3
epip3.4
. (também inclui comopip
, mas acho que excluir isso deve resolver qualquer conflito com python2). Na verdade eu não tenhoC:\Python34\Scripts
no meuPath
, então eu não tive quaisquer problemas relacionados pip ...Se você usa o Anaconda Python, pode instalar facilmente vários ambientes.
Digamos que você tivesse o Anaconda Python 2.7 instalado e desejasse um ambiente python 3.4:
Em seguida, para ativar o ambiente:
E para desativar:
(Com Linux, você deve usar
source activate py34
.)Ligações:
Baixar Anaconda Python
Instruções para ambientes
fonte
Para instalar e executar qualquer versão do Python no mesmo sistema, siga o meu guia abaixo.
Por exemplo, digamos que você queira instalar o Python 2.xe o Python 3.x no mesmo sistema Windows.
Instale os dois lançamentos binários em qualquer lugar que desejar.
Executando simplesmente o comando,
python
o executável encontrado pela primeira vez no PATH será escolhido para o lançamento. Em outras palavras, adicione os diretórios Python manualmente. O que você adicionar primeiro será selecionado quando você digitarpython
. Os programas python consecutivos (ordem crescente em que seus diretórios são colocados no PATH) serão escolhidos da seguinte maneira:python
python
etc.Não importa a ordem dos "pitões", você pode:
No meu exemplo, eu tenho o Python 2.7.14 instalado primeiro e o Python 3.5.3. É assim que minha variável PATH começa com:
PATH = C: \ Arquivos de programas \ Microsoft MPI \ Bin \; C: \ Python27; C: \ Arquivos de programas \ Python_3.6 \ Scripts \; C: \ Arquivos de programas \ Python_3.6 \; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Arquivos de Programas (x86) \ Arquivos Comuns \ Intel \ Compartilhado
...
Observe que o Python 2.7 é o primeiro e o Python 3.5, o segundo.
python
comando running executará o python 2.7 (se o Python 3.5, o mesmo comando iniciaria o Python 3.5).py -2
inicia o Python 2.7 (porque acontece que o segundo Python é o Python 3.5, o qual é incompatívelpy -2
). A execuçãopy -3
inicia o Python 3.5 (porque é o Python 3.x)py -4
. Isso pode mudar se / quando o Python versão 4 for lançado.Agora
py -4
oupy -5
etc. nas saídas do meu sistema:Requested Python version (4) not installed
ouRequested Python version (5) not installed
etc.Espero que isso esteja claro o suficiente.
fonte
pip
. Para qualquer outro python instalado, você deve especificar manualmente o caminho, ie.C:\Python27\Scripts\pip.py [parameters]
. (Claro que, como um atalho, você pode colocar qualquer exe que você quer em uma variável de ambiente.)A partir da versão 3.3 A versão do Windows possui o iniciador Python, consulte a seção 3.4. Iniciador do Python para Windows
fonte
Aqui está o que você pode fazer:
Instale o cmder . Abra e use o Cmder como faria com o terminal cmd. Use o alias de comando para criar alias de comando.
Eu fiz o seguinte:
E é isso! ;-)
fonte
set-alias python2 c:\python27\python.exe
Na verdade, eu apenas pensei em uma solução interessante. Embora o Windows não permita que você aliasse programas com facilidade, você pode criar arquivos em lotes renomeados que chamarão o programa atual.
Em vez de renomear o executável, que quebrará muitas coisas, incluindo pip, crie o arquivo python2.bat no mesmo diretório que o python2.exe. Em seguida, adicione a seguinte linha:
O que significa essa sintaxe arcaica? Bem, é um script em lote (versão do Windows do bash). % ~ dp0 obtém o diretório atual e% * apenas passa todos os argumentos para python que foram passados para o script.
Repita o procedimento para python3.bat
Você também pode fazer o mesmo com o pip e outros utilitários, basta substituir a palavra python no arquivo por pip ou qualquer que seja o nome do arquivo. O alias será o nome do arquivo.
O melhor de tudo é que, quando adicionado ao PATH, o Windows ignora a extensão, executando assim
Inicia a versão python3 e o comando python2 inicia a versão python2.
BTW, esta é a mesma técnica que o Spyder usa para se adicionar ao caminho no Windows. :)
fonte
Você pode instalar várias versões do Python em uma máquina e, durante a instalação, pode optar por associar um deles às extensões de arquivo do Python. Se você instalar módulos, haverá pacotes de instalação diferentes para versões diferentes ou você poderá escolher qual versão deseja segmentar. Como eles geralmente se instalam no diretório de pacotes do site da versão do interpretador, não deve haver nenhum conflito (mas eu não testei isso). Para escolher qual versão do python, você teria que especificar manualmente o caminho para o intérprete, se este não for o padrão. Tanto quanto eu sei, eles compartilhariam as mesmas variáveis PATH e PYTHONPATH, o que pode ser um problema.
Nota: Eu executo o Windows XP. Não tenho idéia se algo disso muda para outras versões, mas não vejo nenhuma razão para isso.
fonte
O que fiz no meu próprio computador com Windows, onde tenho o Python 2.7 e o Python 3.4 instalado, foi que escrevi um arquivo .bat simples no mesmo diretório dos meus arquivos Python.exe. Eles parecem algo como,
O% * permite adicionar argumentos (arquivos Python) posteriormente. Eu acredito que / k mantém o prompt aberto depois que ele termina de executar o script. Em seguida, salvei como python27.bat. Depois, vou para o diretório Python 3 e faço um arquivo bat lá. Agora na minha linha de comando eu posso escrever
Ou
E eles serão executados em suas respectivas versões do Python. Verifique se c: \ python27 e c: \ python34 estão em suas variáveis de ambiente.
Eu tenho minha resposta daqui
fonte
Fiz isso em três etapas, seguindo as instruções aqui: Tudo isso é obtido diretamente daqui: http://ipython.readthedocs.io/en/stable/install/kernel_install.html . Atualmente, estou executando o Python 2.x no Windows 8 e tenho o Anaconda 4.2.13 instalado.
1) Primeiro instale a versão mais recente do python:
2) Próximo ativar python3
3) Instale o kernel:
Se você possui o Python 3 instalado e deseja instalar 2, alterne os 2 e os 3 acima. Quando você abre um novo notebook, agora pode escolher entre Python 2 ou 3.
fonte
Verifique as variáveis de ambiente do sistema após a instalação do Python, os diretórios do python 3 devem estar primeiro na sua variável PATH, depois no python 2.
Qualquer variável de caminho que corresponda primeiro é a que o Windows usa.
Como sempre, o py -2 iniciará o python2 nesse cenário.
fonte
Eu mesmo encontrei esse problema e criei meus lançadores em um .bat para que você pudesse escolher a versão que deseja iniciar.
O único problema é que o arquivo .py deve estar na pasta python, mas, de qualquer maneira, aqui está o código:
Para Python2
Para Python3
Salve-os como .bat e siga as instruções.
fonte
Instale o que você mais usa (3,3 no meu caso) por cima do outro. Isso forçará o IDLE a usar o que você deseja.
Como alternativa (do README do python3.3):
Instalando Várias Versões
Nos sistemas Unix e Mac, se você pretende instalar várias versões do Python usando o mesmo prefixo de instalação (argumento --prefix para o script configure), certifique-se de que o executável principal do python não seja sobrescrito pela instalação de uma versão diferente. Todos os arquivos e diretórios instalados usando o "make altinstall" contêm as versões principal e secundária e, portanto, podem viver lado a lado. "make install" também cria $ {prefix} / bin / python3, que se refere a $ {prefix} /bin/pythonX.Y. Se você pretende instalar várias versões usando o mesmo prefixo, você deve decidir qual versão (se houver) é a sua versão "primária". Instale essa versão usando "make install". Instale todas as outras versões usando "make altinstall".
Por exemplo, se você deseja instalar o Python 2.6, 2.7 e 3.3, sendo 2.7 a versão principal, execute "make install" no diretório de compilação 2.7 e "make altinstall" nos outros.
fonte
Eu apenas tive que instalá-los. Em seguida, usei o software gratuito (e portátil) em http://defaultprogramseditor.com/ em "Configurações do tipo de arquivo" / "Menu de contexto" / pesquisa: "py", escolhi o arquivo .py e adicionei um comando 'aberto' para o arquivo 2 IDLE copiando o comando existente denominado 'open with IDLE, alterando nomes para IDLE 3.4.1 / 2.7.8 e substituindo os números dos arquivos de suas respectivas versões no caminho do programa. Agora, basta clicar com o botão direito do mouse no arquivo .py e escolher qual IDLE quero usar. Pode fazer o mesmo com intérpretes diretos, se você preferir.
fonte
Funciona apenas se você estiver executando seu código no seu Python IDE
Eu tenho o Python 2.7 e o Python 3.3 instalados no meu sistema operacional Windows. Se eu tentar iniciar um arquivo, ele geralmente será aberto no python 2.7 IDE. Como resolvi esse problema, foi quando escolhi executar meu código no python 3.3, abro o python 3.3 IDLE (Python GUI), seleciono o arquivo, abro o meu arquivo com o IDLE e salve-o. Então, quando executo meu código, ele é executado no IDLE que eu o abri no momento. Funciona vice-versa com 2.7.
fonte
Eu instalei o python 2.7.13 e o python 3.6.1 no windows 10pro e estava recebendo o mesmo "erro fatal" quando tentei o pip2 ou o pip3.
O que fiz para corrigir isso foi ir para o local do python.exe nos arquivos python 2 e python 3 e criar uma cópia de cada um. Em seguida, renomeei cada cópia para python2.exe e python3.exe, dependendo da versão do python no diretório pasta de instalação. Portanto, eu tinha em cada pasta de instalação do python um arquivo python.exe e um python2.exe ou python3.exe, dependendo da versão do python.
Isso resolveu meu problema quando eu digitei pip2 ou pip3.
fonte
Se você não conseguir que mais nada funcione, abra um intérprete na versão que você escolher (eu prefiro usar o iPython) e:
Isso usa a versão python em que você está operando atualmente. Funciona bem para um único script, mas rapidamente fica fora de controle se houver muitos scripts executados; nesse caso, você sempre pode criar um arquivo em lotes com todas essas chamadas internas. Não é a resposta mais elegante, mas funciona.
Existe uma maneira de criar aliases para diferentes versões de python no Linux?
fonte