Tautan simbolik yang dapat dijalankan menghasilkan "perintah tidak ditemukan"

24

Saya membuat tautan simbolik (kemarin) seperti ini:

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

Ketika saya menjalankan:

prj-python file.py

Saya mendapat:

prj-python: command not found

Ketika saya mencoba membuat tautan lagi, saya mendapatkan:

ln: membuat tautan simbolik `/ usr / bin / prj-python ': File ada

Mengapa itu terjadi? Saya $PATHadalah:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / game: / opt / real / realPlayer

xralf
sumber

Jawaban:

21

Anda lupa tebasan awal sebelumnya bin/python. Ini berarti /usr/bin/prj-pythonsekarang menunjuk ke /usr/bin/bin/python. Apa yang ingin Anda tunjukkan?

janmoesen
sumber
Tidak ada garis miring awal. yang pwdadalah /home/xralf/my_virtual_envdan memiliki subdirektori bindengan pythonperintah
xralf
8
Daripada, Anda sudah lupa $PWD/sebelumnya bin.
rvs
Terima kasih, ini membantu. Saya menggunakan perintah ini seperti yang ada di buku.
xralf
25

Hal-hal yang perlu diperiksa:

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

Jika itu seperti:

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

File tersebut sebenarnya akan dicari di / usr / bin / bin / python (itulah yang coba dikatakan xralf). Memperbaiki:

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

  • Jika bin/pythonskrip shell Anda (alias. Wrapper-script) periksa baris #! - (terkadang disebut shebang -line) di baris pertama. Jika ada kesalahan ketik seperti #!/bin/bushitu akan menyebabkan pesan kesalahan juga tidak ditemukan .
ktf
sumber
terima kasih, jawaban Anda bahkan lebih hati-hati dan mendidik. Maaf saya sudah menerima.
xralf
ini banyak membantu ... sebagian besar jawaban jika ditemukan adalah sekitar $ PATH
Ja8zyjits
Saya menggunakan ln tanpa parameter. Orang harus menggunakan ln -s memang, sehingga menciptakan tautan simbolik.
Cedric
Membantu, dan saya menggunakan ln -s $PWD/python /usr/bin/python-prj. $PWDdigunakan untuk mendapatkan path lengkap.
Manwal