Ausführbarer symbolischer Link führt zu "Befehl nicht gefunden"


24

Ich habe einen symbolischen Link (gestern) wie folgt erstellt:

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

Wenn ich renne:

prj-python file.py

Ich bekomme:

prj-python: command not found

Wenn ich erneut versuche, den Link zu erstellen, erhalte ich Folgendes:

ln: Symbolische Verknüpfung erstellen `/ usr / bin / prj-python ': Datei existiert

Warum passiert das? Mein $PATHist:

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

Antworten:


21

Sie haben den ersten Schrägstrich zuvor vergessen bin/python. Das heißt /usr/bin/prj-pythonjetzt weist auf /usr/bin/bin/python. Worauf soll es genau hinweisen?


Es gibt keinen anfänglichen Schrägstrich. Das pwdist /home/xralf/my_virtual_envund es hat Unterverzeichnis binmit pythonBefehl
Xralf

8
Als, Sie haben vergessen , $PWD/vor bin.
rvs

Danke, das hat geholfen. Ich habe diesen Befehl wie im Buch verwendet.
Xralf

25

Dinge zu überprüfen:

  • Führen Sie eine ls -l /usr/bin/prj-python

Wenn es so aussieht :

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

Die Datei wird tatsächlich unter / usr / bin / bin / python durchsucht (das hat xralf versucht zu sagen). Fix:

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

  • Wenn bin/pythones sich um ein Shell-Skript handelt (auch bekannt als Wrapper-Skript), überprüfen Sie die #! - Zeile (manchmal auch als Shebang- Zeile bezeichnet ) in der ersten Zeile. Wenn ein solcher Tippfehler auftritt #!/bin/bush, wird auch eine nicht gefundene Fehlermeldung ausgegeben.

danke, deine antwort ist noch vorsichtiger und lehrreicher. Entschuldigung, ich habe bereits zugesagt.
Xralf

das hat sehr geholfen ... die meisten Antworten, die gefunden wurden, waren über $ PATH
Ja8zyjits

Ich benutze eine ln ohne Parameter. Die Leute sollten in der Tat ln-s verwenden und so eine symbolische Verbindung herstellen.
Cedric

Geholfen, und ich habe verwendet ln -s $PWD/python /usr/bin/python-prj. $PWDwird verwendet, um den vollständigen Pfad zu erhalten.
Manwal
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.