Questão Como o prompt do Win + R pode abrir o Python quando não está no meu caminho?


Quando uso o prompt de execução no Windows XP Professional (Win + R) e digite python.exe ou python, funciona e me cumprimenta com o prompt python.

No entanto, quando inicio um cmd janela e, em seguida, digite python.exe ou python, não o encontra.

Isto é o que eu espero, como o diretório Python (para mim, I:\Python31\) não está na minha PATH.

Como, então, se eu digitar python.exe no prompt do Win + R, funciona?

Edit: aqui é uma saída parcial de SET, Removi as entradas mais irrelevantes, não sei por que é útil, além do PATH variável que eu já disse não inclui o diretório Python. Se você precisar de uma outra variável específica, por favor, pergunte.

CLIENTNAME=Console
CommonProgramFiles=I:\Program Files\Common Files
ComSpec=I:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
OS=Windows_NT
Path=I:\WINDOWS\system32;I:\WINDOWS;I:\WINDOWS\system32\WBEM;I:\WINDOWS\system32\WindowsPowerShell\v1.0;I:\Qt\2010.05\mingw\bin;I:\Program Files\CMake 2.8\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1
ProgramFiles=I:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=I:
SystemRoot=I:\WINDOWS
VBOX_INSTALL_PATH=I:\Program Files\Oracle\VirtualBox\
windir=I:\WINDOWS

4


origem


Você poderia editar sua pergunta para incluir a saída de SET? Você pode querer editá-lo para que seu nome não apareça. - paradroid
Postou partes dele, não tenho certeza de como mais nada do que Path é relevante, você quer uma variável específica? - houbysoft
Qual seu diretório de trabalho? - digitxp


Respostas:


O prompt Executar pesquisa um caminho do registro para o lançamento dos programas, bem como o% path%. Dê uma olhada HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths - você provavelmente encontrará um nó chamado "Python.exe" com a entrada padrão apontando para o executável do Python. Instaladores devemos adicione entradas de registro para todos os executáveis ​​principais aqui, mas o prompt de execução é um recurso subestimado, portanto, muitos desenvolvedores se esquecem de adicionar essa etapa simples ao instalador.


12



Nunca soube disso, obrigado pela resposta! - houbysoft
Tecnicamente é ShellExecuteEx() que faz a pesquisa. - grawity
Na verdade, existem vários locais no registro onde os caminhos estão localizados, por exemplo HKCR\Applications. Um dia eu deveria limpar todos eles. - Synetech