App Engine开发服务器修改代码后不重新加载
我正在开发一个运行在Google App Engine上的Python应用。我设置了以下的文件夹结构:
approot/
app.yaml
index.yaml
myapp.py
controllers/
some_controller.py
some_controller1.py
models/
views/
...etc...
我的问题是,开发服务器并不会在我修改代码时总是自动重新加载,尽管Google的文档上说它会这样做。
只有当我在应用的顶层目录中进行修改时,代码才会重新加载。对于子目录中的任何内容(比如控制器),服务器都不会理会。我每次修改后都得手动停止再启动服务器。
这让我在开发过程中进展缓慢,特别是因为没有重启按钮,你必须先停止再启动。
有没有什么解决办法,还是我做错了?我真的很喜欢项目结构清晰,不想把所有文件都放在顶层目录里。
2 个回答
0
请确认你已经安装了pyobjc这个库。
如果没有安装,开发服务器会像这样发出警告:
用户警告:检测源代码变化不被支持,因为你的Python版本没有包含PyObjC(http://pyobjc.sourceforge.net/)。请安装PyObjC,或者如果这不太实际,可以在这里提交一个bug:http://code.google.com/p/appengine-devappserver2-experiment/issues/list。
1
重新加载的机制可能和默认的导入方式以及内置的 __import__
函数有关。如果你(或者你的框架)用其他聪明的方法加载模块,重新加载器可能就不会察觉到。一个可能的解决办法是,在你的 myapp.py
模块中明确导入一些关键的模块。