30

I created a symbolic link (yesterday) like this:

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

When I run:

prj-python file.py

I get:

prj-python: command not found

When I try creating the link again, I get:

ln: creating symbolic link `/usr/bin/prj-python': File exists

Why is that happening? My $PATH is:

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

Michael Mrozek
  • 91,316
  • 38
  • 238
  • 232
xralf
  • 16,149
  • 29
  • 101
  • 149

2 Answers2

32

Things to check:

  • Perform an ls -l /usr/bin/prj-python

If it's like:

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

The file will actually be searched at /usr/bin/bin/python (that's what xralf tried to say). Fix:

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

  • If your bin/python is a shell script (aka. wrapper-script) check the #!-line (sometimes called shebang-line) at the first line. If there's a typo like #!/bin/bush that will cause a not found error message also.
Jeff Schaller
  • 66,199
  • 35
  • 114
  • 250
ktf
  • 2,659
  • 18
  • 15
29

You forgot the initial slash before bin/python. This means /usr/bin/prj-python now points to /usr/bin/bin/python. What would you like it to point to exactly?

janmoesen
  • 2,680
  • 17
  • 16