Plik wykonywalny dowiązania symbolicznego powoduje, że „polecenie nie zostało znalezione”


24

Utworzyłem link symboliczny (wczoraj) w następujący sposób:

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

Kiedy biegnę:

prj-python file.py

Dostaję:

prj-python: command not found

Kiedy próbuję ponownie utworzyć link, otrzymuję:

ln: tworzenie dowiązania symbolicznego `/ usr / bin / prj-python ': Plik istnieje

Dlaczego tak się dzieje? Mój $PATHjest:

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

Odpowiedzi:


21

Wcześniej zapomniałeś początkowego ukośnika bin/python. Oznacza to, że /usr/bin/prj-pythonteraz wskazuje na /usr/bin/bin/python. Na co chciałbyś dokładnie wskazać?


Nie ma początkowego ukośnika. pwdjest /home/xralf/my_virtual_envi ma podkatalogu binz pythonpolecenia
xralf

8
Niż zapomniałeś $PWD/wcześniej bin.
rvs

Dziękuję, to pomogło. Użyłem tego polecenia, tak jak było w książce.
xralf

25

Rzeczy do sprawdzenia:

  • Wykonaj ls -l /usr/bin/prj-python

Jeśli tak, to:

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

plik zostanie przeszukany w / usr / bin / bin / python (to właśnie próbował powiedzieć xralf). Naprawić:

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

  • Jeśli masz bin/pythonskrypt powłoki (aka. Wrapper-script), sprawdź linię #! - (czasami nazywaną shebang -line ) w pierwszej linii. Jeśli występuje taka literówka #!/bin/bush, spowoduje to również komunikat o błędzie, który nie został znaleziony .

dziękuję, twoja odpowiedź jest jeszcze bardziej uważna i edukacyjna. Przepraszam, już zaakceptowałem.
xralf

pomogło to bardzo ... większość odpowiedzi, jeśli znaleziono, dotyczyła $ ŚCIEŻKI
Ja8zyjits

Używam ln bez parametru. Ludzie powinni rzeczywiście używać ln-s, tworząc w ten sposób symboliczne łącze.
Cedric

Pomógł i użyłem ln -s $PWD/python /usr/bin/python-prj. $PWDsłuży do uzyskania pełnej ścieżki.
Manwal
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.