Shebang en Python
En este artículo, vamos a hablar sobre lo que significa shebang
en Python y cómo puedes usarlo en un comando. Hemos incluido un programa de ejemplo para ayudarlo a comprender mejor el concepto de Python shebang
.
Definición de shebang
La secuencia de caracteres shebang
es una secuencia de caracteres especial en un archivo de script denotado por #!
. Ayuda a especificar el tipo de programa que se debe llamar para ejecutar el archivo de secuencia de comandos completo. La secuencia de caracteres shebang
se utiliza siempre en la primera línea de cualquier archivo.
La declaración que menciona la ruta del programa se realiza utilizando primero el carácter shebang
y luego la ruta del programa intérprete.
shebang
en Python
Para todos los scripts que se ejecutarán en Python3, use el siguiente comando en la línea de comandos:
#!/usr/bin/env python3
Reemplace python3
por python2
si el script solo es compatible con la versión Python 2.7.
Si el script es compatible con Python 2 y Python 3, también se puede usar el siguiente comando:
#!/usr/bin/env python
Este código también es comprensible en Windows Python Launcher.
Se prefiere el programa anterior cuando se escribe un comando shebang
en un entorno virtual como pyenv
. Anteriormente conocido como Pythonbrew
, pyenv
es una sencilla herramienta de administración de versiones de Python que ayuda a administrar la versión de Python, instalar las últimas versiones de Python y crear un entorno virtual de Python.
En la mayoría de los casos, se instala un intérprete de Python en /usr/bin/python
o /bin/python
. En estos dos casos, la instrucción shebang
fallará si se usa el siguiente comando:
#!/usr/local/bin/python
En conclusión, el comando shebang
es solo una forma de indicar que el siguiente script es ejecutable. Por lo tanto, el resultado de cualquier script de Python nunca se verá afectado si se ejecuta el comando shebang
, ya sea que se mencione o no.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn