Cambiar objetivo de shebang

Cambiar objetivo de shebang

Me gustaría crear el objetivo python3para usarlo en shebangs. P.ej. Utilice la primera línea #!/usr/bin/env python3.

Lo que probé:

  • setenv python3 PATH_TO_BINARY, también lo puso en .cshrc, echo $python3 muestra también la ruta

  • /bin/env NAME=python3 PATH_TO_BINARY, abre python3 pero no permite el uso del shebang. Lo mismo para /bin/env python3=PATH_TO_BINARY

En caso de que sea importante, me gustaría resolver el siguiente problema:

Estoy trabajando en un rhel 6sistema en el que no puedo instalarlo directamente, python3pero puedo usarlo sobre anaconda3un recurso de red accesible. En lugar de poner el shebang con la ruta absoluta, me gustaría configurar correctamente la ruta de Python3 para escribir código portátil.

Respuesta1

En este caso, no es la #!línea lo que deberías cambiar, sino tu $PATH.

#!/usr/bin/env python3

Esto tiene el efecto de que python3se buscará el intérprete en los directorios enumerados en su $PATHvariable.

Si python3está instalado, por ejemplo, en $HOME/local/bin, entonces este directorio debe estar presente en$PATH antescualquier otro directorio que también pueda contener un python3intérprete; de ​​lo contrario, se utilizará ese en lugar del suyo en $HOME/local/bin.

Entonces necesitas configurar

PATH="$HOME/local/bin:$PATH"

Ya sea en la línea de comando o en un script de inicialización de shell ( ~/.bashrcpor ejemplo). Los usuarios de C-shell lo hacen de manera diferente...

set path = ($HOME/local/bin $path)

En general, la #!línea -identificael interpretepara el script, es decir, qué programa usar para analizar y ejecutar el archivo. Un sedscript, por ejemplo, puede utilizar #!/usr/bin/sed -f.

información relacionada