in

[2021] macos – ¿Cómo cambiar la versión predeterminada de python? {HD}

[updated for 2021]

(No importa si Mac, Linux o Windows 🙂

Si está confundido acerca de cómo iniciar la última versión de Python, se encuentra en la mayoría de las plataformas. python3 Deja que python2 instalación intacta (por razones de compatibilidad mencionadas anteriormente); para que pueda iniciar python3 con python3 Envío.

Histórico…

La convención de nomenclatura es que la mayoría de los scripts generalmente llamarán explícitamente a python2 o python3. Esto sucedió debido a un Necesidad de compatibilidad con versiones anteriores.

Aunque Python técnicamente ni siquiera garantiza la compatibilidad con versiones anteriores entre versiones menores, Python3 De verdad rompe la compatibilidad con versiones anteriores. En ese momento, los programas que ‘python‘python2 esperado (la versión principal en ese momento). En sistemas extremadamente antiguos, los programas y scripts pueden esperar python= python2, y cambiarlo rompería esos programas y scripts.

Al momento de escribir esta respuesta, OP no debería haber cambiado esto para mantener la compatibilidad con los scripts antiguos.

Hacia el año 2021…

Hoy, muchos años después de la transición de python2 a python3, la mayoría del software se refiere explícitamente a python2 o python3 (al menos en Linux). Por ejemplo, puede llamar #!/usr/bin/env python2 o #!/usr/bin/env python3. Esto, por ejemplo (python-is-python3-package), liberó el comando python para configurarlo según las preferencias del usuario, pero realmente depende del sistema operativo.

La política de cómo deben manejarlo las distribuciones python El comando se escribió en 2011 como PEP 394: el comando «python» en sistemas similares a Unix. Última actualización junio 2019.

Al escribir una biblioteca, siempre debe usar las versiones más específicas de Python que pueda usar. De lo contrario, como usuario final, puede cambiar el nombre de esto para su uso personal (aunque es posible que su sistema operativo o distribución no lo haga tan fácil).

Alias ​​de concha:

Sin embargo, puede crear un alias personalizado en su shell. Cómo lo haces depende del caparazón, pero tal vez puedas hacerlo alias py=python3y péguelo en su archivo de inicio de shell. Esto solo funciona en su máquina local (como debería) y es un poco innecesario en comparación con solo escribir (a menos que invoque el comando todo el tiempo).

Los usuarios confundidos no deben intentar crear alias o entornos virtuales ni nada por el estilo. python correr python3; esta es una mala forma.Esto es aceptable hoy, pero PEP 394 propone alentar a los usuarios a usar un entorno virtual en su lugar.

Diferentes versiones 3ª* o 2ª*:

En el caso extremadamente improbable de que alguien con dos versiones de Python3, digamos 3.1 vs 3.2, llegue a esta pregunta y esté confundido de que de alguna manera tiene dos versiones de Python instaladas, puede ser porque está leyendo manuales y/o manuales instalados. Puede usar las funciones estándar de instalación/desinstalación/paquete/administración de programas de su sistema operativo para rastrear las cosas, y tal vez (a menos que esté haciendo un trabajo de desarrollo, que sorprendentemente se ve afectado por los pocos cambios incompatibles con versiones anteriores entre versiones menores) elimine versión anterior (o hacer make uninstall si realizó una instalación manual). Si necesitas dos versiones, reconfigura la tuya $PATH variable para poner la versión ‘predeterminada’ deseada delante; o si está utilizando la mayoría de las distribuciones de Linux, el comando que está buscando es sudo update-alternatives. Asegúrese de que cualquier programa que ejecute que necesite acceso a versiones anteriores se pueda llamar correctamente desde su entorno de llamada o shell (configurando la variable var PATH en esta área).

Algo sobre $PATH

Nota al margen: para explicar PATH un poco más: la forma habitual en que se seleccionan los programas es a través del PATH (echo $PATH en Linux y Mac) variable de entorno. Por ejemplo, siempre puede ejecutar un programa con la ruta completa /usr/bin/🔳 some argso cd /usr/bin luego ./🔳 some args (Reemplace el espacio con, por ejemplo, el programa ‘echo’ mencionado anteriormente), pero de lo contrario escriba 🔳 some args Sin eso no tiene sentido PATH variable env que declara los directorios donde implícitamente podemos buscar archivos y luego ejecutarlos (si /usr/bin Yo no estaba allí PATHentonces yo diría 🔳: command not found). Se ejecuta el primer comando coincidente en el primer directorio (el which comando en Linux y Mac le dirá qué subruta es esta). Por lo general (por ejemplo, en Linux, pero de manera similar en Mac) es algo como esto /usr/bin/python Este es un enlace simbólico a otros enlaces simbólicos a la versión final en algún lugar, por ejemplo:

% echo $PATH
/usr/sbin:/usr/local/bin:/usr/sbin:usr/local/bin:/usr/bin:/bin

% which python
/usr/bin/python
% which python2
/usr/bin/python2
% ls -l /usr/bin/python
lrwxrwxrwx 1 root root 7 Mar  4  2019 /usr/bin/python -> python2*
% ls -l /usr/bin/python2  
lrwxrwxrwx 1 root root 9 Mar  4  2019 /usr/bin/python2 -> python2.7*
% ls -l /usr/bin/python2.7
-rwxr-xr-x 1 root root 3689352 Oct 10  2019 /usr/bin/python2.7*

% which python3         
/usr/bin/python3
% ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 9 Mar 26  2019 /usr/bin/python3 -> python3.7*
% ls -l /usr/bin/python3.7
-rwxr-xr-x 2 root root 4877888 Apr  2  2019 /usr/bin/python3.7*

% ls -l /usr/bin/python*
lrwxrwxrwx 1 root root       7 Mar  4  2019 /usr/bin/python -> python2*
lrwxrwxrwx 1 root root       9 Mar  4  2019 /usr/bin/python2 -> python2.7*
-rwxr-xr-x 1 root root 3689352 Oct 10  2019 /usr/bin/python2.7*
lrwxrwxrwx 1 root root       9 Mar 26  2019 /usr/bin/python3 -> python3.7*
-rwxr-xr-x 2 root root 4877888 Apr  2  2019 /usr/bin/python3.7*
lrwxrwxrwx 1 root root      33 Apr  2  2019 /usr/bin/python3.7-config -> x86_64-linux-gnu-python3.7-config*
-rwxr-xr-x 2 root root 4877888 Apr  2  2019 /usr/bin/python3.7m*
lrwxrwxrwx 1 root root      34 Apr  2  2019 /usr/bin/python3.7m-config -> x86_64-linux-gnu-python3.7m-config*
lrwxrwxrwx 1 root root      16 Mar 26  2019 /usr/bin/python3-config -> python3.7-config*
lrwxrwxrwx 1 root root      10 Mar 26  2019 /usr/bin/python3m -> python3.7m*
lrwxrwxrwx 1 root root      17 Mar 26  2019 /usr/bin/python3m-config -> python3.7m-config*

sidenote2: (En el caso más raro, un programa de Python llama a un subprograma con el subprocess Módulo para especificar qué programa ejecutar, puede cambiar las rutas de subprocesos con sys.path desde el módulo sys o el PYTHONPATH Establezca la variable de entorno en el proceso principal o especifique la ruta completa … pero dado que la ruta la heredan los procesos secundarios, esto no es un problema de forma remota).

Relacionado, [2021] macos – ¿Cómo cambiar la versión predeterminada de python? {HD}


What do you think?

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

GIPHY App Key not set. Please check settings

[2021] Cómo crear una poción incómoda en Minecraft {DH}

[2021] Splunk – Adicción {DH}