
Me gustaría crear el objetivo python3
para 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 6
sistema en el que no puedo instalarlo directamente, python3
pero puedo usarlo sobre anaconda3
un 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 python3
se buscará el intérprete en los directorios enumerados en su $PATH
variable.
Si python3
está instalado, por ejemplo, en $HOME/local/bin
, entonces este directorio debe estar presente en$PATH
antescualquier otro directorio que también pueda contener un python3
inté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 ( ~/.bashrc
por 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 sed
script, por ejemplo, puede utilizar #!/usr/bin/sed -f
.