-
Bienvenid@
- Mi primer programa en Python
-
Tipos Básicos
-
- Cuestionario
-
- Cuestionario
-
Colecciones
-
- Cuestionario
-
-
Control de flujo
-
- Cuestionario
-
- Cuestionario
-
Control de flujo (Mas avanzado)
-
- Cuestionario
-
- Cuestionario
-
Crear y usar funciones
-
- Cuestionario
-
- Cuestionario
-
-
Programar orientado a objetos
-
- Cuestionario
-
- Cuestionario
-
- Cuestionario
-
- Cuestionario
-
Revisitando Objetos
-
- Cuestionario
-
- Cuestionario
-
Programación funcional
-
- Cuestionario
-
- Cuestionario
-
Excepciones
-
- Cuestionario
-
- Cuestionario
-
Módulos y Paquetes
-
Repaso de lo aprendido
-
Examen
-
Uso de env en shebang
Un shebang con env permite que el sistema local busque el intérprete de Python en el PATH, en lugar de fijar una ruta absoluta. Esto hace los scripts más portables entre distintas distribuciones y entornos donde Python puede estar en lugares diferentes. A continuación se explica cómo usarlo y cómo dar permisos para lanzar el archivo directamente en Unix.
Qué es Shebang?
El shebang es la primera línea de un script que indica qué intérprete debe utilizarse para ejecutar el archivo. Por ejemplo, #! /usr/bin/env python3 le dice al sistema que use Python 3 desde el entorno de usuario.
Ventajas de env
Usar env en el shebang ofrece varias ventajas:
- Portabilidad: El script puede funcionar en diferentes entornos y distribuciones.
- Flexibilidad: Permite que cualquier versión de Python disponible en el PATH se pueda utilizar.
Ejecutar scripts
Para ejecutar un script directamente en Unix:
- Asegúrate de tener permisos de ejecución con el comando chmod +x nombre_del_script.py.
- Llama al script directamente usando ./nombre_del_script.py. Esto hace que la ejecución sea más sencilla.
usr/usr/bin
/usr/bin/env ejecuta la primera coincidencia del intérprete que encuentre en la variable PATH. Es útil cuando la ruta al intérprete no es siempre /usr/bin/python, o cuando quieres forzar Python 3 escribiendo /usr/bin/env python3.
Pasos prácticos
- Crear el archivo: guardar el contenido anterior en hola.py.
- Dar permiso de ejecución: desde la terminal ejecutar chmod +x hola.py. Este comando añade el permiso de ejecución al fichero, de modo que el sistema pueda tratarlo como un programa ejecutable. A continuación se puede lanzar directamente con: ./hola.py.
Diferencias al ejecutar
- Si llamas ./hola.py, el kernel lee la primera línea shebang y usa el intérprete indicado por env.
- Si llamas python hola.py, la orden la ejecuta el intérprete python que invoques en la terminal, y la primera línea del archivo se ignora desde el punto de vista del intérprete.
Caveats y buenas prácticas
- Si el proyecto requiere Python 3, usar /usr/bin/env python3 para evitar que una instalación por defecto de Python 2 se ejecute por error.
- Asegurarse de que el archivo tenga finales de línea tipo Unix (LF). Si tiene CRLF, el shebang puede fallar al arrancar en sistemas Unix.
- env selecciona el primer intérprete en PATH. Si el PATH del usuario apunta a un intérprete distinto del esperado, la ejecución usará ese intérprete, así que comprobar el entorno es buena práctica.
Simulador Interactivo: El misterio del Shebang y el PATH
Configura las propiedades de tu script de Python y lánzalo en la terminal de Linux/macOS. ¡Observa cómo reacciona el sistema según los permisos y el entorno!
1. Configura el archivo script.py
2. Consola de comandos (Acciones)
0x23 0x21 = #!). Si usas /usr/bin/env, delegas al sistema operativo la tarea de buscar el binario de Python dentro de la variable de entorno PATH del usuario actual.
Simulador Interactivo: El misterio del Shebang y el PATH
Configura las propiedades de tu script de Python y lánzalo en la terminal de Linux/macOS. ¡Observa cómo reacciona el sistema según los permisos y el entorno!
1. Configura el archivo script.py
2. Consola de comandos (Acciones)
0x23 0x21 = #!). Si usas /usr/bin/env, delegas al sistema operativo la tarea de buscar el binario de Python dentro de la variable de entorno PATH del usuario actual.