Mude o alvo do shebang

0

Eu gostaria de criar o alvo python3 para ser usado em shebangs. Por exemplo. use a primeira linha #!/usr/bin/env python3 .

O que eu tentei:

  • setenv python3 PATH_TO_BINARY, também coloque em .cshrc , echo $ python3 também mostra caminho

  • / bin / env NOME = python3 PATH_TO_BINARY, abre o python3, mas não permite o uso do shebang. O mesmo para / bin / env python3 = PATH_TO_BINARY

Caso seja importante, eu gostaria de resolver o seguinte problema:

Estou trabalhando em um sistema rhel 6 se eu não puder instalar diretamente o python3 , mas posso usá-lo sobre anaconda3 , que está instalado em um recurso de rede acessível. Em vez de colocar o shebang com o caminho absoluto, eu gostaria de definir corretamente o código de gravação do caminho python3.

    
por magu_ 17.06.2016 / 19:31

1 resposta

2

Nesse caso, não é a #! -line que você deve alterar, mas o seu $PATH .

#!/usr/bin/env python3

Isso faz com que o interpretador python3 seja pesquisado nos diretórios listados na variável $PATH .

Se python3 estiver instalado em, por exemplo, $HOME/local/bin , então este diretório deve estar presente em $PATH antes de qualquer outro diretório que também possa conter um python3 intérprete, caso contrário uma será usada em vez da sua em $HOME/local/bin .

Então você precisa definir

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

Na linha de comando ou em um script de inicialização do shell ( ~/.bashrc , por exemplo). Usuários de C-shell fazem isso de maneira diferente ...

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

Em geral, a #! -line identifica o interpretador para o script, ou seja, qual programa usar para analisar e executar o arquivo. Um script sed , por exemplo, pode usar #!/usr/bin/sed -f .

    
por 17.06.2016 / 20:04