2010-08-29 34 views
3

剛將一個webapp從TurboGears移植到Django,並經歷了運行正確的服務器(即不是runserver)的過程。嘗試使用推薦的Django文檔討論的Apache + mod_wsgi路由,但出於某種原因,只要嘗試在Apache加載的模塊中的任何地方嘗試import CoreData,該線程就會停止運行,並且不會顯示任何錯誤消息或任何內容。將mod_wsgi與Apache結合使用時,無法導入PyObjC CoreData模塊

具體而言,在其攤位出來的點是在CoreData/__init__.py文件位置:

__bundle__ = _objc.initFrameworkWrapper("CoreData", 
    frameworkIdentifier="com.apple.CoreData", 
    frameworkPath=_objc.pathForFramework(
    "/System/Library/Frameworks/CoreData.framework"), 
    globals=globals()) 

不知道它是什麼CoreData,使這一失敗,因爲import Foundation正常工作(即它似乎並不因爲PyObjC的所有東西都是在Apache下破解的,只是CoreData)。

我有點期待現在改用lighttpd路線,但如果有人可以闡明如何使mod_wsgi的方式工作,這將是一件好事,因爲我寧願堅持儘量接近建議的最簡單的部署方法儘可能。

在此先感謝您的任何見解。

另外:我在OSX 10.6.4上安裝了最新版本的PyObjC & Apache,以及我從Google Code網站上抓取的最新mod_wsgi。

回答

1

嘗試強制WSGI應用程序在主解釋器中運行。聽起來像PyObjC沒有正確實施,以便在子解釋器中使用。請參閱:

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API

+0

感謝格雷厄姆,把'WSGIApplicationGroup%{GLOBAL}'線到Apache的配置固定的問題加載CoreData庫...現在在處理其他的Django權限錯誤之前,我看到了沒有堆棧跟蹤的頁面... :) – glenc 2010-08-30 02:53:45