pyplot - Propósito de#!/Usr/bin/python3
title plt python (4)
Me he dado cuenta de esto en un par de lenguajes de scripting, pero en este ejemplo, estoy usando python. En muchos tutoriales, comenzarían con #!/usr/bin/python3
en la primera línea. No entiendo por qué tenemos esto.
- ¿No debería el sistema operativo saber que es un script de Python (obviamente está instalado ya que lo está haciendo referencia)?
- ¿Qué sucede si el usuario está utilizando un sistema operativo que no está basado en Unix?
- El idioma está instalado en una carpeta diferente por el motivo que sea
- El usuario tiene una versión diferente. Especialmente cuando no es un número de versión completo (como Python3 vs Python32)
En todo caso, podría ver esto rompiendo el script de python debido a los motivos enumerados anteriormente.
Y esta línea es cómo .
Es ignorado
No se ejecutará, y se debe cambiar para que apunte a la ubicación correcta. O
env
debe usar.No se ejecutará, y probablemente no se ejecute en una versión diferente independientemente.
Eso se llama hash-bang. Si ejecuta el script desde el shell, inspeccionará la primera línea para descubrir qué programa debería iniciarse para interpretar el script.
Un sistema operativo no basado en Unix utilizará sus propias reglas para descubrir cómo ejecutar el script. Windows, por ejemplo, usará la extensión de nombre de archivo y el #
provocará que la primera línea se trate como un comentario.
Si la ruta al ejecutable de Python es incorrecta, naturalmente la secuencia de comandos fallará. Es fácil crear enlaces al ejecutable real desde cualquier ubicación especificada por la convención estándar.
Esta línea ayuda a encontrar el ejecutable del programa que ejecutará el script. Esta notación shebang es bastante estándar en la mayoría de los lenguajes de scripting (al menos como se usa en sistemas operativos adultos).
Un aspecto importante de esta línea es especificar qué intérprete se usará. En muchas distribuciones de Linux centradas en el desarrollo, por ejemplo, es normal tener varias versiones de python instaladas al mismo tiempo.
Python 2.xy Python 3 no son 100% compatibles, por lo que esta diferencia puede ser muy importante. Así que #! /usr/bin/python
#! /usr/bin/python
y #! /usr/bin/python3
#! /usr/bin/python3
no son lo mismo (y ninguno es lo mismo que #! /usr/bin/env python3
como se indica en otra parte de esta página.
#!/usr/bin/python3
es una línea shebang .
Una línea shebang define dónde se encuentra el intérprete. En este caso, el intérprete de python3
se encuentra en /usr/bin/python3
. Podría ser un intérprete de bash
, ruby
, perl
o cualquier otro intérprete de scripting. El sistema operativo no sabe si se trata de un script de Python si configura el indicador de ejecución en el script y lo ejecuta como ./script.py
, a menos que lo ejecute como python3 script.py
o establezca la línea de shebang.
Puede usar /usr/bin/env python3
para la portabilidad en diferentes sistemas si tienen el intérprete de idioma instalado en diferentes ubicaciones.