Il collegamento simbolico eseguibile genera "comando non trovato"


24

Ho creato un link simbolico (ieri) in questo modo:

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

Quando corro:

prj-python file.py

Ottengo:

prj-python: command not found

Quando provo di nuovo a creare il collegamento, ottengo:

ln: creazione del collegamento simbolico `/ usr / bin / prj-python ': il file esiste

Perché sta succedendo questo? Il mio $PATHè:

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

Risposte:


21

Hai dimenticato la barra iniziale prima bin/python. Ciò significa che /usr/bin/prj-pythonora indica /usr/bin/bin/python. Cosa vorresti che indicasse esattamente?


Non esiste una barra iniziale. la pwdè /home/xralf/my_virtual_enve ha sottodirectory bincon pythoncomando
xralf

8
Che, hai dimenticato $PWD/prima bin.
camper

Grazie, questo mi ha aiutato. Ho usato questo comando come era nel libro.
xralf,

25

Cose da controllare:

  • Eseguire un ls -l /usr/bin/prj-python

Se è così:

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

il file verrà effettivamente cercato in / usr / bin / bin / python (questo è ciò che xralf ha provato a dire). fix:

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

  • Se il tuo bin/pythonè uno script di shell (aka. Wrapper-script) controlla la riga #! - (a volte chiamata shebang -line) nella prima riga. Se c'è un errore di battitura come #!/bin/bushquello causerà anche un messaggio di errore non trovato .

grazie, la tua risposta è ancora più attenta ed educativa. Scusa, ho già accettato.
xralf,

questo ha aiutato molto ... la maggior parte delle risposte se trovate fossero circa $ PERCORSO
Ja8zyjits

Uso un ln senza un parametro. Le persone dovrebbero usare ln -s in effetti, creando così un collegamento simbolico.
Cedric,

Aiutato e ho usato ln -s $PWD/python /usr/bin/python-prj. $PWDviene utilizzato per ottenere il percorso completo.
Manwal
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.