2012-05-29 4 views
1

В течение примерно 5 часов я пытаюсь развернуть сайт в своей локальной сети, я использую движок Google и запускаю его локально. То, что я пытаюсь сделать, это вызвать терминальный скрипт, как только пользователь нажмет кнопку «Отправить» на моей странице.Invoke terminal Script в google app engine

Сценарий будет работать на моем сервере(), Ну, скрипт работает нормально, но приложение Google двигатель дает каждый раз ошибки я пытаюсь вызвать его ...

Я использую Ubuntu 12.04, Python для программирование в GAE .... и ошибка происходит на этой линии ...

subprocess.call(['sendSMS.sh %s %s' % (s1,s2)]) 

и ошибка говорит:

subprocess.call(['sendSMS.sh %s %s' % (s1,s2)]) AttributeError: 'module' object has no attribute 'call'

+0

Вы случайно не вызвали ваш файл 'subprocess.py', не так ли? Это один из возможных источников такой ошибки. – bernie

+2

Также, насколько я знаю, вы не можете запустить скрипт bash в App Engine, так как вам не разрешено обращаться к файловой системе. – bernie

+0

Я вижу ... что облом, ну, я думаю, мне, возможно, придется пойти с ЛАМПОЙ тогда ...? – ArslanW

ответ

4

Там нет subprocess.call на Google App Engine. В App Engine нет файловой системы (как пояснил @bernie в комментариях), и вы не можете запускать произвольный код в инфраструктуре Google - только код Python (и Java и Go).

Похоже, вы никогда не планировали загружать свое приложение для запуска на платформе Google (с тех пор вы не могли использовать телефон, который вы подключили к своему собственному серверу), и это подразумевает, что вы планируете использовать разработку сервер в производстве. Это очень плохая идея - сервер разработки предназначен для тестирования вашего приложения перед его загрузкой на платформу Google и никогда не должен использоваться на производстве.

Поскольку у вас есть собственный сервер, вы должны запустить веб-сервер производства, такой как Apache. Если вы использовали webapp2 (как рекомендовано в учебном руководстве App Engine), вы все равно можете использовать существующий код. Просто используйте Apache mod_wsgi, а затем разверните приложение webapp2 в Apache на вашем сервере.

+0

Я вижу ... так что я должен пойти на систему LAMP, а затем использовать mod_wsgi для развертывания моего существующего приложения ... я прав? – ArslanW

+0

Да, звучит хорошо. Если вы уже написали код, зависящий от App-Engine, вам может потребоваться его изменить (то есть, если вы используете службы App Engine, такие как хранилище данных, они, очевидно, не будут работать в обычном стеке LAMP). Но 'webapp2' должен по-прежнему работать нормально - не нужно Django, если вы не ищете более мощную веб-инфраструктуру. – mgiuca