App Engine开发服务器在更改时不会重新加载代码

时间:2011-04-01 02:47:04

标签: python google-app-engine sdk devserver

我正在开发一款将在Google App Engine上运行的python应用程序。我使用以下目录结构设置我的应用程序:

approot/
  app.yaml
  index.yaml
  myapp.py
  controllers/
   some_controller.py
   some_controller1.py
  models/
  views/

...etc...

我的问题是,即使Google的文档说明了,我在进行更改时也不会总是自动重新加载我的代码。

它重新加载我的代码的唯一一次是我所做的更改是在我的应用程序的顶级目录中。子目录中的任何内容(例如控制器)都将被忽略。每次进行更改时,我都必须停止并启动服务器。

我发现这确实阻碍了我在开发方面的进步,特别是因为没有重启按钮,你实际上必须先停止然后再开始。

对此有解决方法还是我做错了?我真的很喜欢组织良好的项目,而不是将我的所有文件都转储到顶级目录。

2 个答案:

答案 0 :(得分:1)

重新加载机制可能与默认导入机制和内置__import__函数相关联。如果您(或您的框架)以其他巧妙的方式加载模块,则重新加载器可能不会注意到。可能的解决方法是在myapp.py模块中明确导入关键模块。

答案 1 :(得分:0)

仔细检查您是否已安装pyobjc

开发服务器会抱怨这样:

UserWarning:不支持检测源代码更改,因为您的Python版本不包含PyObjC(http://pyobjc.sourceforge.net/)。请安装PyObjC,如果不切实际,请在http://code.google.com/p/appengine-devappserver2-experiment/issues/list提交错误。