ПРИМЕЧАНИЕ. Возможно, он не отвечает на ваш вопрос, поскольку я не уверен, что понимаю ваш вопрос ...
Но если вы хотите поместить некоторый код в (общий) модуль и включить его из нескольких ваших контроллеров, я предлагаю вам взглянуть на четвертую главу ( The Core ) web2py book и поиск по local_import
.
Для такой ситуации web2py
предоставляет другой способ импорта модулей
таким образом, что глобальный sys.path
не изменяется: помещая их в
папка "модули" приложения.
Одним из преимуществ является то, что модуль
будут автоматически скопированы и
распространяется вместе с приложением;
Тем не менее, есть определенные
ограничения, которые применяются. web2py
предоставляет функцию local_import, которая
должен использоваться для импорта модулей из
папка "modules".
Импорт модулей зависит от модулей и от того, где web2py может их найти. Если это стандартный модуль, который web2py может найти в sys.path или в web2py / site-packages, import modulename
должен работать как положено.
Для локальных модулей вашего приложения web2py предлагает что-то еще: applications/appname/modules
Эти модули можно импортировать с помощью local_import
.
mymodule = local_import(themodule)
Импортирует модуль с именем themodule в папку локальных модулей приложений и делает его доступным под именем mymodule. Обратите внимание, что local_import поддерживает два дополнительных аргумента: перезагрузка и приложение. Во время разработки код модуля часто меняется, поэтому не забывайте указывать web2py перезагружать модуль при каждом запросе с параметром reload=True
, иначе вы не увидите изменения, если не перезапустите web2py.