Не удается импортировать модуль PyObjC CoreData при использовании mod_wsgi с Apache - PullRequest
3 голосов
/ 29 августа 2010

Просто портировал веб-приложение с TurboGears на Django и проходил процесс установки правильного сервера (т.е. не runserver). Попытался пойти по рекомендованному маршруту Apache + mod_wsgi, о котором говорят документы Django, но по какой-то причине поток останавливается без сообщения об ошибке или чего-либо еще, как только вы пытаетесь import CoreData где-нибудь в модуле, который загружает Apache.

В частности, точка, в которой он останавливается, находится в файле 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, которая поставляется вместе с ней, плюс с последней версией mod_wsgi, которую я взял с веб-сайта Google Code.

1 Ответ

1 голос
/ 30 августа 2010

Попробуйте принудительно запустить приложение WSGI в основном интерпретаторе. Похоже, что PyObjC не реализован правильно, чтобы использовать его в суб-интерпретаторах. См:

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

...