Виконане символічне посилання призводить до "команди не знайдено"


24

Я створив символічне посилання (вчора) так:

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

Коли я бігаю:

prj-python file.py

Я отримав:

prj-python: command not found

Коли я знову спробую створити посилання, я отримую:

ln: створення символічного посилання `/ usr / bin / prj-python ': Файл існує

Чому це відбувається? Моє $PATH:

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

Відповіді:


21

Ви раніше забули початкову косу рису bin/python. Це означає, що /usr/bin/prj-pythonзараз вказує на /usr/bin/bin/python. На що ви хотіли б точно вказати?


Початкової косої риси немає. the pwdis /home/xralf/my_virtual_envі має підкаталог binіз pythonкомандою
xralf

8
Чим, ви забули $PWD/перед тим bin.
rvs

Дякую, це допомогло. Я використав цю команду так, як це було в книзі.
xralf

25

Що потрібно перевірити:

  • Виконайте ls -l /usr/bin/prj-python

Якщо це так:

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

Файл насправді буде шукати за адресою / usr / bin / bin / python (саме так xralf намагався сказати). Виправити:

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

  • Якщо ваш bin/pythonсценарій оболонки (він же. Wrapper-script), перевірте рядок #! - (іноді його називають shebang -line) у першому рядку. Якщо є помилка помилки, #!/bin/bushяка також спричинить не знайдене повідомлення про помилку.

дякую, ваша відповідь ще більш уважна та навчальна. Вибачте, що я вже прийняв.
xralf

це дуже допомогло ... Більшість відповідей, якщо їх знайшли, були про $ PATH
Ja8zyjits

Я використовую ln без параметра. Люди справді повинні використовувати ln -s, таким чином створюючи символічний зв’язок.
Седрік

Допомагав, і я користувався ln -s $PWD/python /usr/bin/python-prj. $PWDвикористовується для отримання повного шляху.
Манваль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.