2014-11-17 57 views
2

我正在嘗試使用CherryPy服務Django 1.7應用程序。啓動腳本如下:使用CherryPy服務Django 1.7應用程序

import wsgiserver 
import sys 
import os 
import django.core.handlers.wsgi 


if __name__ == "__main__": 
    sys.path.append(os.path.realpath(os.path.dirname(__file__))) # add django project absolute path 
    # Startup Django 
    os.environ['DJANGO_SETTINGS_MODULE'] = 'my_project.settings' 
    server = wsgiserver.CherryPyWSGIServer(('127.0.0.1', 8001), django.core.handlers.wsgi.WSGIHandler()) 
try: 
    server.start() 
except KeyboardInterrupt: 
    print 'Stopping' 
    server.stop() 

一切都安裝好。然而,當我嘗試訪問該應用程序(Django的成功頁面),我得到一個錯誤:

AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time. 

讀書的時候,我發現你的runserver前的遷移運行,還可以添加django.setup()來wsgi.py 。可悲的是,解決方案不適合我。

我做錯了什麼?

預先感謝您。

+0

Django 1.7在安裝時導入所有模型文件。如果你在你的模型中做了一些依賴於已經發生的設置的東西(比如非惰性的gettext,它需要知道當前的語言),那麼這個錯誤就會失敗。 – RemcoGerlich

回答

3

我不知道這是否是正確的解決方案,但我可以通過調用定義設置模塊後立即插入

django.setup() 

在我自己的代碼來解決此問題。

+0

我已經試過了。這是行不通的。 – Wedava

0

我通過在wsgiserver2.py中導入後運行django.setup()來得到它的工作。

相關問題