
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-o em
.cshrc
, echo $python3 mostra também o caminho/bin/env NAME=python3 PATH_TO_BINARY, abre python3 mas não permite o uso do shebang. O mesmo para /bin/env python3=PATH_TO_BINARY
Caso seja importante, gostaria de resolver o seguinte problema:
Estou trabalhando em um rhel 6
sistema onde não consigo instalar diretamente, python3
mas posso usá-lo sobre anaconda3
o qual está instalado em um recurso de rede acessível. Em vez de colocar o shebang com o caminho absoluto, gostaria de definir corretamente o caminho python3 para escrever código portátil.
Responder1
Nesse caso, não é a #!
linha que você deveria alterar, mas o seu arquivo $PATH
.
#!/usr/bin/env python3
Isto faz com que o python3
intérprete seja procurado nos diretórios listados em sua $PATH
variável.
Se python3
estiver instalado em, por exemplo, $HOME/local/bin
, então este diretório deve estar presente em$PATH
antesqualquer outro diretório que também possa conter um python3
intérprete, caso contrário, esse será usado em vez do seu próprio intérprete $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). Os usuários do C-shell fazem isso de maneira diferente ...
set path = ($HOME/local/bin $path)
Em geral, a #!
linha identificao intérpretepara o script, ou seja, qual programa usar para analisar e executar o arquivo. Um sed
script, por exemplo, pode usar #!/usr/bin/sed -f
.