2012-01-27 25 views
16

Quiero poder abrir un símbolo del sistema en la carpeta que contiene un script de python y simplemente escribir el nombre del script sin el .py y verlo funcionar.Hacer que los scripts de Python se ejecuten en Windows sin especificar la extensión ".py"

Siguiendo los diversos consejos sobre Google para hacer esto, lo hago:

  1. Añadir la python.exe a mi camino
  2. Añadir .py a PATHEXT
  3. intenta abrir el archivo .py en ventanas exploradas Cuando se le solicite con: ¿Qué programa desea abrir esto? Navego a mi python.exe

Lo que debería suceder es que el python.exe debería agregarse a la ventana emergente 'Abrir con', pero no es así? Vuelvo a intentar con el python.exe fuera de mi camino. El mismo problema.

Nota cada vez que configuro una ruta, está en el panel de control. La versión de python es 2.7. Y para hacer las cosas más extrañas, puedo asociar programas .py con pythonw, pero esto no sirve de nada, ya que quiero la consola.

Cualquier ayuda apreciada.

Respuesta

27

Añadir .PY a PATHEXT como se ha señalado antes

Entonces:

assoc .py=Python.File 
ftype Python.File=c:\Python27\python.exe "%1" %* 

Adición de pitón a la trayectoria no es necesario ejecutar la secuencia de comandos en un símbolo del sistema o haciendo doble clic en el Explorador, sólo se si desea iniciar una sesión de python interactiva o ejecutar el script con python yourscript.py

Consulte http://docs.python.org/2/using/windows.html para obtener más información.

+1

Si usted tiene más de una versión de Python instalado (como 2.7.x y 3.4), es posible que desee utilizar 'ftype Python.File =" C: \ Windows \ py.exe ""% 1 "% *'. – martineau

+0

Debe incluir .PYW en esto también: http://stackoverflow.com/a/13023969/237091 –

4

Modifique la variable PATHEXT para incluir scripts de Python. Por ejemplo, aquí está la mía:

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY 

Puede hacer esto cada vez que abra una consola de comandos, o simplemente modificar las variables de entorno de usuario globales de manera que todas las instancias de cmd.exe lo incluirá.

+1

yo que en el paso 2. – dublintech

Cuestiones relacionadas