Как мне найти, где Python находится в Unix? - PullRequest
8 голосов
/ 07 декабря 2010

Я работаю на новом сервере для нового рабочего места и пытаюсь повторно использовать скрипт CGI, который я написал на Python ранее в этом году.Мой CGI-скрипт начинается с

#!/local/usr/bin/python

Но когда я запускаю его на новом сервере, он жалуется, что такой папки нет.Очевидно, что Python хранится в другом месте на этой коробке, но я понятия не имею, где.

До этого я не делал много юниксов, просто достаточно, чтобы обойти, поэтому, если есть какая-то хитрая уловка, я должен знать здесь, я был бы признателен:)

Спасибо!

Ответы [ 6 ]

16 голосов
/ 07 декабря 2010

Попробуйте:

which python

в терминале.

8 голосов
/ 07 декабря 2010

По этой причине рекомендуется изменить строку shebang, чтобы она была более независимой от пути:

#!/usr/bin/env python

См. это сообщение списка рассылки для получения дополнительной информации:

Рассмотрим возможности того, что на другом компьютере python может быть установлен на /usr/bin/python или /bin/python, в таких случаях #!/usr/local/bin/python завершится ошибкой.В этих случаях мы вызываем исполняемый файл env с аргументом, который определит путь аргументов путем поиска в $PATH и правильно его использует.

(env почти всегда находится в /usr/bin/ так что не нужно беспокоиться, что env не присутствует в /usr/bin.)

3 голосов
/ 07 декабря 2010

Попробуйте: which python или whereis python

3 голосов
/ 07 декабря 2010
# which python
/usr/local/bin/python

Обновление

Я неправильно понял. Замените заголовок на

#!/usr/bin/env python

Это извлечет местоположение Python от пользователя, который запускает настройки среды скрипта

1 голос
/ 07 декабря 2010

Надлежащим способом решения этой проблемы является

#!/usr/bin/env python

, который позволяет использовать двоичный файл в переменной PATH в shebang.

0 голосов
/ 07 декабря 2010

Рекомендуется использовать обратные галочки для заголовка Python-скрипта:

`which python`
...