Instalación de Python 3 en Windows ejecutándose desde la línea de comandos

Solo por curiosidad, ¿existe alguna razón en particular por la que Python 3.x no esté instalado en Windows para ejecutarse por defecto con la línea de comandos “python3”, como ocurre en Mac OSX y Linux? ¿Hay algún tipo de forma de configurar Python para que funcione de esta manera? Gracias.

EDIT: Solo para agregar, la razón por la que pregunto es porque tengo el intérprete de Python 2 y 3 instalado en mi computadora, por lo que es ambiguo, ya que ambos se ejecutan con el comando “python”.

La razón por la que pregunto es porque tengo el intérprete de Python 2 y 3 instalado en mi computadora, por lo que es ambiguo, ya que ambos se ejecutan con el comando “python”.

Para ejecutar el ejecutable de Python 2:

C:\> py -2 

Para ejecutar el ejecutable de Python 3:

 C:\> py -3 

donde py es un lanzador de Python que se incluye con la instalación de Python 3.

py reconoce el shebang (por ejemplo, #!/usr/bin/env python3 hace que se #!/usr/bin/env python3 Python 3 ejecutable), respeta virtualenv (si ejecuta py sin especificar la versión explícita del ejecutable de python) es decir, ejecute:

 C:\> py your_script.py 

y la versión correcta de python se usa automáticamente, no es necesario especificar la versión de Python en la línea de comandos explícitamente.

¿Existe alguna razón en particular por la que Python 3.x no esté instalado en Windows para ejecutarse por defecto con la línea de comando “python3”, como ocurre en Mac OSX y Linux?

OSX y Linux tienen el ejecutable de python instalado por defecto como norma y se refiere a la versión de Python 2 en la mayoría de los casos en este momento, por eso necesita un nombre de python3 separado allí.

No hay Python en Windows por defecto. Y por lo tanto, cualquier versión que hayas instalado es solo python (supongo). La forma recomendada de administrar varias versiones de Python es usar el iniciador de Python.

¿Hay algún tipo de forma de configurar Python para que funcione de esta manera?

Si desea escribir python3 some_script.py lugar de py some_script.py o incluso some_script (suponiendo que .py esté en %PATHEXT% y el %PATHEXT% Python esté configurado para ejecutar scripts de Python (verifique assoc .py y ftype Python.File ) – por defecto) luego cree un archivo bat, por ejemplo, python3.cmd y póngalo en %PATH% :

 "C:\path to\Python 3.X\python.exe" %* 

Tienes que agregar la carpeta bin de python a tu ruta. Puedes hacerlo manualmente, pero cuando instales Python, recuerdo que tienes una opción para hacerlo.

Es probable que hayas perdido la checkbox en la parte inferior del instalador.

Documentación completa aquí: https://docs.python.org/3/using/windows.html

Entonces, creo que solo ejecutas python , no python3 desde el símbolo del sistema. La razón por la que los sistemas Unix tienen python3 se debe a que python predeterminado en Python2.x en muchos sistemas.

Instalar ventana

Trabajo con múltiples distribuciones Python 2.xy 3.x en Windows. Algunos de ellos son “portátiles”, es decir, no están registrados en el registro de Windows y, por lo tanto, no se puede acceder a ellos con el selector de py.exe con Python 3.3+. Para salvar mi cordura, escribí SelectPython.bat que está disponible en bitbucket . Configura las PYTHONHOME , PYTHONPATH y PATH según el destino que le python.exe (una ruta relativa o absoluta al directorio principal de python.exe ). Puede hacerlo de forma pegajosa para el rest de su sesión de línea de comandos:

 > SelectPython C:\Path\To\Desired\Version\Of\Python > python 

o de forma transitoria, es decir, para llamar a un comando de Python en particular sin afectar el entorno del shell desde el que lo llama:

 > SelectPython C:\Path\To\Desired\Version\Of\Python python -c "import sys;print(sys.version)" 

Puede que le resulte útil.