Python na linha de comando executa a versão errada?

5

Eu tenho várias versões do Python instaladas em um computador com Windows 7.

Eu quero rodar o Python 2.7 por padrão, mas por alguma razão, digitar python na linha de comando executa a versão 2.4.5 do Python. Eu tentei adicionar C:\Python27 à minha variável de caminho do sistema como por questionar e vasculhar manualmente minha variável de caminho para ter certeza de que o Python 2.4.5 não foi lançado por engano, mas isso não resolveu o problema. Eu tenho que digitar C:\Python27\python.exe toda vez que eu quiser acessar a versão correta do python que eu quero.

Que outros lugares posso verificar? Como posso fazer com que a linha de comando use a versão correta do python?

Também encontrei isso mas não é para windows.

[EDITAR]
Meu caminho (separado por ponto e vírgula):

C:\Program Files\Common Files\Microsoft Shared\Windows Live;
C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Dell\DW WLAN Card\Driver;
C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;
C:\Program Files (x86)\Windows Live\Shared;
c:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\;
c:\Program Files\Microsoft SQL Server0\Tools\Binn\;
c:\Program Files\Microsoft SQL Server0\DTS\Binn\;
C:\Program Files\TortoiseGit\bin;
C:\Program Files\Java\jdk1.6.0_26\bin;
C:\Program Files\Java\jdk1.6.0_21 ;
C:\Program Files\IVI Foundation\VISA\Win64\Bin\;
C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin\;
C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;
C:\Program Files\WPIJavaCV\OpenCV_2.2.0\bin;
C:\Program Files (x86)\LilyPond\usr\bin;
C:\Program Files\TortoiseSVN\bin;
C:\Program Files (x86)\doxygen\bin;
C:\Program Files (x86)\Graphviz 2.28\bin;
C:\Users\Michael\bin\Misc\cppcheck\;
C:\Program Files (x86)\Git\cmd;
C:\Python27\python.exe;
C:\Ruby192\bin;
C:\Users\Michael\AppData\Roaming\cabal\bin;
C:\Python27\; 

[EDIT 2]
A execução de python vomita:

'import site' failed; used -v for traceback
Python 2.4.5 (#1, Jul 22 2011, 02:01:04)
[GCC 4.1.1] on mingw32
Type "help", "copyright", "credits" or "license" for more information.
>>> 

... e a execução de python --version (como sugerido abaixo) parece ser uma opção não reconhecida.

(Eu também tentei executar python -v , e parece que o Python 2.4 está tentando importar bibliotecas de C:\Python27\Lib e falhou devido a um erro de sintaxe quando encontrou uma instrução with , que foi adicionada na versão posterior Eu acho)

Além disso, não tenho certeza se é significativo ou não, mas a versão acima do Python diz algo sobre o GCC e o mingw32, enquanto a execução de C:\python27\python.exe mostra isso:

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>> 
    
por Michael0x2a 07.06.2012 / 17:49

4 respostas

2

Enquanto você está em uma sessão do Python 2.4.5, use isto para localizar o arquivo Python.exe que foi escolhido:

import sys
print sys.executable

Se você quiser jogar com várias versões, não pode confiar em% PATH%. Em vez disso, você pode criar arquivos em lote separados que chamam a versão desejada (verifique se os arquivos em lote estão no PATH). Por exemplo, para o 2.7.2 você pode criar um PY27.BAT que simplesmente contenha:

@C:\Python27\Python.exe $*
    
por 07.06.2012 / 18:59
4

Você precisa atualizar a extensão .py no editor do registro. Procure a extensão ".py" e observe o que a chave (Padrão) aponta também. Provavelmente está em:

HKEY_CLASSES_ROOT/.py/(Default)

O "Data" desta chave é provavelmente "Python.File" (veja a imagem abaixo).

Useissotambémparaprocurarumasegundachave:

HKEY_CLASSES_ROOT/<previous_keys_data>/shell/open/command/@defaulte.g.HKEY_CLASSES_ROOT/Python.File/shell/open/command/@default

Achave(Padrão)contémocaminhoparaointerpretadorPythonqueseráusado.Atualize-oconformenecessárioparaapontarparaoquevocêdesejausar.(vejascreenshot)

Antecedentes

O interpretador Python escolhido na linha de comando usa apenas a variável de ambiente PATH se você realmente especificar o executável python. ou seja,

python myProgram.py

Sem realmente incluir "python", o shell de comando tentará encontrar um programa para abrir arquivos .py (a primeira chave acima).

Em seguida, ele usará essa chave para encontrar um programa apropriado (a segunda chave).

Como disse @efotinis, você pode determinar o intérprete sendo usado usando o programa simples:

import sys
print sys.executable

Tente executar isso com os dois itens a seguir para ver a diferença entre usar o PATH para encontrar o executável especificado e usar o interpretador de comandos para encontrar um programa para abrir o arquivo .py especificado.

python myProgram.py
myProgram.py
    
por 28.01.2013 / 14:25
0

Ainda não posso comentar, mas talvez seja útil postar o valor do seu caminho (executando echo %PATH% no prompt de comando). Pelo menos então podemos começar a ver quais valores você tem.

    
por 07.06.2012 / 17:58
0

Postagem porque esse segmento obtém os principais resultados e não vejo essa resposta. Essa solução simples é o que funcionou para mim no Windows 7. Você precisa examinar as variáveis do sistema para a variável Path. 1 echo %PATH% parece não imprimi-los para mim, então use o seguinte para visualizar e editá-los:

Verifique as variáveis do sistema clicando com o botão direito do mouse em Meu computador no menu do Windows ‣ Propriedades ‣ Configurações avançadas do sistema ‣ guia Avançado ‣ botão Variáveis de ambiente ‣ em Variáveis do sistema selecione Caminho ‣ botão Editar

Isso abrirá uma janela para editar Path . Se você tiver várias versões do python instaladas, verifique se a que você deseja usar como padrão é a primeira da lista. Se você quiser que o python 2.7 seja o padrão, por exemplo, ele deve ser listado antes de outras versões.

O meu parece com isso: C:\Python27\;C:\Program Files (x86)\Python35-32\;

Para confirmar funcionou, reinicie e abra o prompt do cmd. Então corra python -V

Agora, o resultado é Python 2.7.11 e a execução de scripts que dependem apenas do comando python parece estar usando essa versão.

    
por 12.06.2016 / 08:59