2010-08-06 10 views
0

Я новичок в Google App Engine и просто играл с ним, но для жизни я не понимаю, как импортировать нестандартные модули, а для этот вопрос не полностью понимает цели приложения app.yaml.Импорт моих собственных модулей в Google App Engine

По существу я хочу импортировать Simpy (сборник ~ 15 питона файлов) из моего файла сценария, но все комбинации вещей, которые я делаю приводит к ImportError, а именно:

from SimPy.Simulation import * 
ImportError: No module named SimPy.Simulation 

В настоящее время они все в той же папке, и мой файл app.yaml гласит:

application: physicalsim 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url:/
    script: physicalsim.py 
- url:/
    script: Globals.py 
- url:/
    script: Simulation.py 
etc.... 

Теперь я совершенно уверен, что я получил синтаксис файла YAML неправильно, но не могу найти любую полезную документацию для того, как чтобы сделать это в любом месте (немного разочаровывает), я не очень понимаю смысл папок def в некоторых файлах app.yaml, которые я видел, имея в виду, что нет физической структуры, это просто виртуальные папки?

Приветствия, если вы можете помочь, и я уверен, что я сталкивался как балбес :)

ответ

2

appconfig Из (пропуске файлов) Документация:

Файлы в каталоге приложения, пути соответствие пути static_dir или пути загрузки static_files считаются статическими. Все остальные файлы в каталоге приложения считаются прикладной программой и файлами данных.

Элемент skip_files указывает, какие файлы в каталоге приложения не должны быть загружены в App Engine. Значение представляет собой либо регулярное выражение, либо список регулярных выражений. Любое имя файла, которое соответствует любому регулярному выражению, не указывается в списке файлов, загружаемых при загрузке приложения.

(Не помещайте SimPy в список пропуска).

Нет необходимости указывать прилагаемые файлы программы в app.yaml. Убедитесь, что ваш каталог приложений содержит подкаталог с именем SimPy с файлом __init__.py и, конечно же, Simulation.py.

1

Документация для файла app.yaml is here in the Application Config page.

В разделе Обработчики в основном работает путем сравнения URL на просьбу с каждой из моделей, указанных в свою очередь, и когда первый матч найден работает обработчик соответствия (или обслуживающей статические файлы, если static_dir или static_files указан вместо script.

В показанном app.yaml URL-адрес, точно соответствующий /, вызовет вызов обработчика physicalsim.py. Все остальные обработчики будут проигнорированы, поскольку они обслуживаются с одного и того же URL-адреса. Если это модули поддержки для physicalsim.py вам не нужно включать что-либо о них в app.yaml.

URL-адреса не должны иметь никакого отношения к тому, как выглядит структура вашего webapp внутри.Там не должно быть никакого соответствия между URL-адресами и каталогами, содержащими ваши обработчики & (хотя для здравого смысла вам может потребоваться хотя бы некоторая корреляция).

Вы прошли через документы getting started?

В каталоге, в котором находится app.yaml (т. Е. Корень вашего приложения, поскольку он будет загружен) будет находиться на пути python, вы должны иметь возможность ссылаться на все ваши модули относительно него (и/или добавлять другие в вашем обработчике, если необходимо).

 Смежные вопросы

  • Нет связанных вопросов^_^