Solo por curiosidad, ¿hay alguna razón particular por la cual Python 3.x no esté instalado en Windows para ejecutarse por defecto con la línea de comando "python3", como lo hace en Mac OSX y Linux? ¿Hay algún tipo de forma de configurar Python para que se ejecute así? Gracias.

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

10
Alex 11 dic. 2015 a las 00:26

4 respuestas

La mejor respuesta

la razón por la que pregunto es porque tengo instalado el intérprete Python 2 y 3 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 Python launcher que se incluye con su instalación de Python 3.

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

C:\> py your_script.py

Y la versión correcta de Python se usa automáticamente; no es necesario que especifique la versión de Python en la línea de comandos explícitamente.

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

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

No hay Python en Windows por defecto. Y por lo tanto, cualquier versión que haya 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 se ejecute así?

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

"C:\path to\Python 3.X\python.exe" %*
23
jfs 11 dic. 2015 a las 15:10

Trabajo con múltiples distribuciones de 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 son accesibles por el selector de versiones py.exe entregado con Python 3.3+. Para salvar mi cordura, escribí SelectPython.bat que está disponible en bitbucket. Configura las variables PYTHONHOME, PYTHONPATH y PATH de acuerdo con el objetivo que le das (una ruta relativa o absoluta al directorio padre de python.exe). Puede hacerlo de una manera que sea pegajosa para el resto 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 está llamando:

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

Puede que le resulte útil.

0
jez 11 dic. 2015 a las 16:33

Debe agregar la carpeta bin de Python a su ruta. Puede hacerlo manualmente, pero cuando instale Python, recuerdo que tiene una opción para hacerlo.

1
Olivier Pellier-Cuit 10 dic. 2015 a las 21:47

Probablemente haya perdido la casilla de verificación en la parte inferior del instalador.

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

Entonces, creo que acaba de ejecutar python, no python3 desde el símbolo del sistema. La razón por la cual los sistemas Unix tienen python3 es porque python está predeterminado en Python2.x en muchos sistemas.

Install window

2
cricket_007 10 dic. 2015 a las 22:09