Pregunta ¿Cómo es que el prompt de Win + R puede abrir Python cuando no está en mi camino?


Cuando uso el indicador de ejecución en Windows XP Professional (Win + R) y escribo python.exe o python, funciona y me saluda con el aviso de Python.

Sin embargo, cuando comienzo un cmd ventana, y luego escriba python.exe o python, no lo encuentra.

Esto es lo que espero, como el directorio de Python (para mí, I:\Python31\) no está en mi PATH.

¿Cómo es que, entonces, si escribo python.exe en el prompt de Win + R, funciona?

Editar: aquí hay una salida parcial de SET, Eliminé la mayoría de las entradas irrelevantes, no estoy seguro de por qué es útil, aparte del PATH variable que ya dije no incluye el directorio de Python. Si necesita una variable particular distinta de estas, por favor pregunte.

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


origen


¿Podría editar su pregunta para incluir la salida de SET? Es posible que desee editarlo para que su nombre no aparezca. - paradroid
Publicadas partes de ella, no estoy seguro de cómo algo más que Path es relevante, ¿quieres una variable específica? - houbysoft
¿Cuál es tu directorio de trabajo? - digitxp


Respuestas:


el indicador Ejecutar busca una ruta de registro para que los programas se inicien, así como% path%. Echa un vistazo a HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths - Es probable que encuentre un nodo llamado "Python.exe" con la entrada predeterminada apuntando al ejecutable de Python. Instaladores debería agregue entradas de registro para todos los ejecutables principales aquí, pero el prompt Run es una característica subestimada, por lo que muchos desarrolladores olvidan agregar este simple paso a su instalador.


12



Nunca lo supe, ¡gracias por la respuesta! - houbysoft
Técnicamente es ShellExecuteEx() eso hace la búsqueda. - grawity
De hecho, hay varios lugares en el registro donde se ubican las rutas, por ejemplo HKCR\Applications. Un día debería limpiarlos a todos. - Synetech