Yürütülebilir sembolik bağlantı “komut bulunamadı” ile sonuçlanır


24

Bunun gibi sembolik bir bağlantı (dün) oluşturdum:

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

Koşarken:

prj-python file.py

Alırım:

prj-python: command not found

Bağlantıyı tekrar oluşturmaya çalıştığımda şunu alıyorum:

ln: `/ usr / bin / prj-python 'sembolik bağını oluşturmak: Dosya var

Bu neden oluyor? Benim $PATH:

/ Usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin / sbin: / bin: / usr / oyunlar: / opt / gerçek / RealPlayer

Yanıtlar:


21

İlk eğik çizgiyi daha önce unuttun bin/python. Bu /usr/bin/prj-pythonşimdi işaret ediyor demektir /usr/bin/bin/python. Tam olarak ne göstermesini istersiniz?


İlk eğik çizgi yok. pwdolduğu /home/xralf/my_virtual_envve alt dizini vardır binile pythonkomut
xralf

8
Daha Unuttun ettik $PWD/önce bin.
rvs

Teşekkürler, bu yardımcı oldu. Bu komutu kitaptaki gibi kullandım.
xralf

25

Kontrol edilecekler:

  • Gerçekleştirmek ls -l /usr/bin/prj-python

Eğer öyleyse:

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

Dosya aslında / usr / bin / bin / python'da aranacaktır (xralf dediği gibi). Düzeltme:

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

  • Eğer bin/pythonbir kabuk betiği iseniz (aka. Sarmalayıcı-betiği) , ilk satırdaki #! - satırını (bazen shebang -satırı da denir ) kontrol edin . Böyle bir yazım hatası varsa #!/bin/bush, aynı zamanda bir bulunamadı hata iletisine neden olur .

teşekkür ederim, cevabınız daha da dikkatli ve eğitici. Üzgünüm, zaten kabul ettim.
xralf

bu çok yardımcı oldu ... eğer cevapların çoğu eğer yaklaşık $ PATH
Ja8zyjits

Parametresiz bir ln kullanıyorum. İnsanlar gerçekten de bunları kullanmalı ve böylece sembolik bir bağ kurmalı.
Cedric

Yardım ettim ve kullandım ln -s $PWD/python /usr/bin/python-prj. $PWDtam yol almak için kullanılır.
Manwal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.