O link simbólico executável resulta em “comando não encontrado”

15

Eu criei um link simbólico (ontem) assim:

sudo ln -s bin/python /usr/bin/prj-python

Quando eu corro:

prj-python file.py

Eu recebo:

prj-python: command not found

Quando tento criar o link novamente, obtenho:

ln: creating symbolic link '/usr/bin/prj-python': File exists

Por que isso está acontecendo? Meu $PATH é:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer

    
por xralf 16.10.2011 / 20:09

2 respostas

15

Você esqueceu a barra inicial antes de bin/python . Isso significa que /usr/bin/prj-python agora aponta para /usr/bin/bin/python . O que você gostaria que apontasse exatamente?

    
por 16.10.2011 / 20:34
17

Coisas a verificar:

  • Executar uma ls -l /usr/bin/prj-python

Se for assim:

lrwxrwxrwx (...) /usr/bin/prj-python -> bin/python

O arquivo será realmente pesquisado em /usr/bin/bin/python (é isso que o xralf tentou dizer). Corrigir:

rm /usr/bin/prj-python e ln -s /full/path/to/your/python /usr/bin/python-prj

  • Se o seu bin/python for um shell script (também conhecido como wrapper-script), verifique a #! - linha (às vezes chamada shebang -line) na primeira linha . Se houver um erro de digitação como #!/bin/bush , isso também causará uma mensagem de erro não encontrada .
por 17.10.2011 / 11:29

Tags