Raspberry pi Python shebang с сервером cgi

Я пытаюсь запустить локальный сервер CGI на моем raspberry pi для размещения веб-страницы с одной ссылкой, эта ссылка относится к сценарию CGI, который должен запускать другой сценарий, а затем печатать HTML-код для перенаправления обратно на начальную страницу (так что чтобы не висело)

в корневом каталоге сервера у меня есть:

index.html

favicon.ico

Сервер.py

cgi-бен

мой сервер настроен на использование папки cgi-bin для cgi-скриптов.

проблема, с которой я сталкиваюсь, заключается в том, что я не могу сделать сценарии вызываемыми, поэтому вместо ввода «python Server.py» я должен иметь возможность набирать «Server.py»

для этого я пробовал несколько шебангов:

#!/usr/bin/env python

#!/usr/bin/python

а затем вызвал chmod a+x Server.py, чтобы пометить его как исполняемый, но безрезультатно.

чтобы уточнить, я использую:

питон 2.7.3rc2

стандартный дистрибутив raspi linux "wheezy"

я читал в некоторых справочных документах, что если файл имеет новые строки в стиле DOS, это мешает шебангу, поэтому я убедился, что они теперь являются новыми строками в стиле MAC, это все еще не работает.

для дальнейшего тестирования я сделал простой файл Python, который содержит:

#!/usr/bin/python

print "Hello World!"

сохранил его как test.py, пометил как исполняемый и попробовал:

/test.py

из командной строки и я получаю:

печать: плохой интерпретатор: нет такого файла или каталога

может кто-нибудь, пожалуйста, скажите мне, где я ошибаюсь?

Спасибо

Джеймс


person James Kent    schedule 04.03.2014    source источник
comment
каков результат which python   -  person user1937198    schedule 04.03.2014
comment
какой питон выводит: /usr/bin/python   -  person James Kent    schedule 04.03.2014
comment
Вы пробовали python test.py ? Просто проверить.   -  person VivienG    schedule 04.03.2014
comment
python test.py работает как положено   -  person James Kent    schedule 04.03.2014
comment
В своем вопросе вы вводите /test.py не забудьте . перед! ./test.py Но это не так. Вы можете запустить свой скрипт где угодно с помощью python test.py   -  person VivienG    schedule 04.03.2014
comment
я попробовал bash test.py, который не дал мне никакого результата, я только что удалил python и переустановил его, но все равно безуспешно, мне нужно, чтобы эти файлы выполнялись сами по себе, как их называет сервер cgi...   -  person James Kent    schedule 04.03.2014
comment
Извините, это моя ошибка, это bash -c ./test.py   -  person VivienG    schedule 04.03.2014
comment
@JamesKent Также не могли бы вы дать нам результат этого echo $PATH, пожалуйста.   -  person VivienG    schedule 04.03.2014
comment
bash -c ./test.py дал мне: bash: ./test.py: нет такого файла или каталога, и эхо $PATH дает: /usr/bin/sbin:/usr/local/bin:/usr/bin:/ сбин:/бен   -  person James Kent    schedule 04.03.2014
comment
Хорошо, это странно, похоже, у вас проблемы с bash :/ Можете ли вы просто использовать python ./test.py для своего использования? Я думаю, что больше ничем не могу вам помочь, попробуйте bash --version и распечатайте результат здесь, возможно, у вас ограниченная версия.   -  person VivienG    schedule 04.03.2014
comment
к сожалению, из-за того, как сервер cgi вызывает скрипт, я не могу этого сделать, он должен работать правильно, просто набрав имя скрипта :/ и я сделаю это, однако мой экран на данный момент был заимствован...   -  person James Kent    schedule 04.03.2014


Ответы (1)


Попробуйте удалить окончания строк Windows в скрипте. Это заставило меня работать.

Например. см. Как преобразовать конец строки Windows в конец строки Unix (CR/LF в LF)

Дополнительные возможные причины этой проблемы см. в моем ответе здесь https://stackoverflow.com/a/65249192/1150303

person DomTomCat    schedule 08.05.2015