我正在转换 python App Engine 应用程序以使用本文中所述的模块,https://cloud.google.com/appengine/docs/python/modules/。我想在我的每个模块中使用自定义处理程序作为基类来添加一些通用功能。我需要在每个模块中重复我的自定义处理程序代码,还是有办法导入该类?
例如,我希望我的架构看起来像这样:
MyProject
├── common
│ ├── my_handler.py
├── module1
│ │ ├── module1.yaml
│ │ ├── main.py
├── module2
│ │ ├── module2.yaml
│ │ ├── main.py
/common/my_handler.py 不是应用引擎模块的一部分,如下所示:
import webapp2
class BaseHandler(webapp2.RequestHandler):
"""
BaseHandler for all requests
"""
pass
然后在 /module1/main.py 文件中,我想做这样的事情:
import webapp2
from common.my_handler import BaseHandler
class module1Handler(BaseHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, this is module 1!')
app = webapp2.WSGIApplication(
[('/', module1Handler),
],
debug=True)
这不起作用,服务器会抛出一个错误,因为它找不到 common.my_handler.py:
ImportError: No module named common.my_handler
这些模块似乎是沙盒的。是否可以从 /module1/main.py 中导入 /common/my_handler.py?