2016-12-15 2 views
1

У меня есть питон проект работает локально, который работает под командой формате UNIX из: питон main.py arg1 arg2 и т.д.Выполнить команду питона из .yaml файла

Я хочу, чтобы экспортировать свою папку в Google App Engine, поэтому я сделал небольшой учебник, чтобы запустить «Hello World» в моем приложении. Я прочитал файл app.yaml, но не могу понять, как добавить app.yaml в мой проект, который запускает мою команду Python.

EDIT:

runtime: python27 
api_version: 1 
threadsafe: true 

command: ["/bin/sh", "-c"] 
args: ["python webXMLPARSER.py www.reitmans.com 2016-12-01 2016-12-08"] 
+1

стандарт или гибкая среда? –

+0

@DanCornilescu Стандартная среда – Seraf

+0

Лучше создать тег SO для стандартных и гибких сред GAE. –

ответ

2

Короткий ответ - вы не можете сделать это.

The long one now.

GAE (стандартный) код приложения не предназначен для запуска в качестве автономного приложения. Это всего лишь коллекция конфигурационных файлов и фрагментов кода, предназначенных для совместной работы с дополнительным кодом GAE (live или SDK) и дополняющего его для работы в качестве приложения.

Чтобы запустить приложение локально, необходимо выполнить его через сервер разработки SDK, см. Using the Local Development Server.

также:

  • GAE приложения принципиально приложений веб-сервера, они получают запросы и возвращать ответы, они на самом деле не выполнять произвольные питона CMDS. Недопустимая ваша попытка конфигурации, см. app.yaml Reference.

  • песочница GAE имеет существенные ограничения, когда дело доходит до того, что приложение может делать, в частности, запуск других процессов не допускается. См. The sandbox.

1

Во-первых, вы должны инструктировать запустить оболочку, а затем передать аргументы оболочки, как питон something.py args1 args2.

command: bash -c "python something.py args1 args2" 

Вы должны попробовать Dockerfiles 1, они имеют более интуитивный способ работает commads:

CMD ["python", "something.py", "args1", "args2"] 
+0

Я получаю сообщение об ошибке: Конфигурация недействительна: Неожиданный атрибут «команда» для типа объекта AppInfoExternal. – Seraf

+0

EDIT: У вас есть простой пример .yaml, я довольно новичок в файлах .yaml. – Seraf

+0

У вас есть ваш .yaml? можете ли вы обновить вопрос? Отредактировав ответ, не могли бы вы попробовать? –