Как структурировать стандартный проект Python (модули, библиотеки) для будущего использования в Google App Engine? - PullRequest
10 голосов
/ 21 октября 2011

В настоящее время я разрабатываю проект Python, который развивается, и в будущем я могу реализовать его как веб-приложение в GAE.

По мере роста проекта я обрезаю потенциально многократно используемый код на отдельные пакеты и модули, которые в настоящее время находятся на моей PYTHONPATH.

У вас есть какие-либо советы о том, как структурировать мой проект,и повторно используемые пакеты, чтобы в будущем он хорошо вписывался в проект GAE?

Рассматривать рекомендации по структуре проекта GAE в других публикациях (таких как this и this и это ) кажется довольно плоским - это лучший путь?

А как насчет сторонних пакетов / модулей?Лучше всего прикусить пулю и использовать VirtualEnv с самого начала?

Большое спасибо.Prembo.

Ответы [ 4 ]

5 голосов
/ 25 октября 2011

Просто поместите ваши различные библиотеки в пакеты вне корневого каталога вашего приложения.Корневой каталог автоматически добавляется в sys.path.

вашего приложения. Если вы хотите поместить их в каталог lib вне корневого каталога, вы можете сделать это, но вам придется написать модульэто добавляет этот каталог в конец sys.path и импортирует его, прежде чем импортировать что-либо из lib.

Использование virtualenv - вариант, но я лично не думаю, что он принесет вам много пользы, посколькуне может запустить virtualenv на производстве, а dev_appserver эмулирует производственную среду.

2 голосов
/ 21 октября 2011

Мой магистр дипломная работа в качестве студента была реализована в App Engine.Проект с открытым исходным кодом, и вы можете использовать его по своему усмотрению, я надеюсь, что вы поймете идею и сможете адаптировать ее к вашим потребностям.

2 голосов
/ 21 октября 2011

Я не могу рассказать вам о GAE, в частности, но могу сказать, что кусание пули не имеет к этому никакого отношения - использование VirtualEnv (и virtualenvwrapper) сделает вашу разработку на Python более гладкой, простой и легкой во всем.

Перегрузка низкая, преимуществ много.

Переключатель.Теперь.

1 голос
/ 21 октября 2011

GAE Python SDK создает собственную виртуальную среду при работе в локальной среде, поэтому virtualenv мало чем вам поможет.Существуют фреймворки, такие как web2py и django-nonrel, которые хорошо работают с GAE, если вы готовы портировать свой код или, по крайней мере, черпать вдохновение в структуре их папок.

...