3

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

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

...etc...

我的问题是开发服务器不会总是在我进行更改时自动重新加载我的代码,即使谷歌的文档说它会。

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

我发现这确实阻碍了我的开发进度,特别是因为没有重新启动按钮,你实际上必须点击停止然后开始。

有没有办法解决这个问题,还是我做错了?我真的很喜欢有一个组织良好的项目,并且不想将我的所有文件都转储到顶级目录中。

4

2 回答 2

1

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

于 2011-04-01T02:51:44.370 回答
0

仔细检查您是否已安装 pyobjc

开发服务器会这样抱怨:

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

于 2013-04-28T19:46:46.143 回答