問題描述
我正在開發一個將在 Google App Engine 之上運行的 python 應用程序.我使用以下目錄結構設置我的應用程序:
I'm working on a python app that will run on top of Google App Engine. I setup my app up with the following directory structure:
approot/
app.yaml
index.yaml
myapp.py
controllers/
some_controller.py
some_controller1.py
models/
views/
...etc...
我的問題是,當我進行更改時,開發服務器不會總是自動重新加載我的代碼,即使 Google 的文檔說它會這樣做.
My problem is that the development server will not always automatically reload my code when I make changes even though Google's documentation says it will.
它重新加載我的代碼的唯一時間是當我所做的更改位于我的應用程序的頂級目錄中時.子目錄中的任何內容(例如控制器)都將被忽略.每次進行更改時,我都必須停止并啟動服務器.
The only time it does reload my code is when the change I make is in the top level directory of my app. Anything in a subdirectory (e.g. controllers) is ignored. I have to stop and start the server every time a change is made.
我發現這確實阻礙了我的開發進度,特別是因為沒有重啟按鈕,你實際上必須點擊停止然后開始.
I find this really impedes my progress in development, especially since there is no restart button, you actually have to hit stop and then start.
有沒有辦法解決這個問題,還是我做錯了?我真的很喜歡有一個組織良好的項目,并且不想將我所有的文件都轉儲到頂級目錄中.
Is there a remedy for this or am I just doing it wrong? I really like having a well organized project and would rather not dump all my files in the top level directory.
推薦答案
重載機制可能與默認導入機制和內置 __import__
函數相關.如果您(或您的框架)以其他巧妙的方式加載模塊,重新加載器可能不會注意到.一種可能的解決方法是在 myapp.py
模塊中顯式導入關鍵模塊.
The reload mechanism is likely tied to the default import mechanism and builtin __import__
function. If you (or your framework) load your modules in some other, clever way, the reloader might not notice. A possible workaround is to explicitly import key modules in your myapp.py
module.
這篇關于App Engine 開發服務器在更改時不會重新加載代碼的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!