2009-12-16 4 views
0

Essayer de se connecter facebook travailler sur le moteur d'application, et donc je suis en suivant ces instructions:Ayant des difficultés à importer des classes de middleware dans App Engine/Django

http://www.slideshare.net/mrtrosen/lab305-django-facebook-connect-integration-example

L'une des étapes me oblige à ajouter à mes MIDDLEWARE_CLASSES, et je l'ai ajouté ce qui suit à settings.py (copié de la diapositive 18 dans la présentation ci-dessus):

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'facebook.djangofb.FacebookMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'facebookconnect.middleware.FacebookConnectMiddleware', 
    ) 

Cependant, quand je considère mon application locale (qui travaillait avant d'ajouter à settings.py), je reçois l'e suivant rror:

ImproperlyConfigured: Error importing middleware facebook.djangofb: "No module named facebook.djangofb"

Cependant, quand je vais à la borne, je suis en mesure d'exécuter python et quand je tape « importation facebook.djangofb » je ne suis pas d'erreur.

Pour votre information, le paquet facebook se trouve dans /Library/Python/2.6/site-packages.

Des idées pour expliquer pourquoi cela pourrait se produire? J'ai été bloqué sur cela pendant un moment alors toute aide serait grandement appréciée.

Merci!

+0

exécutez-vous l'application localement en utilisant le serveur interne django ou en utilisant Apache, etc ...? –

+0

Je l'exécute en utilisant le lanceur de moteur de l'application google – ryan

Répondre

0

Tous les modules doivent résider sous la hiérarchie de dossiers de votre application. Veillez également à ajouter les chemins requis à sys.path dans vos gestionnaires de demande d'application.

Le sys.path devrait être mis à jour à quelque chose le long des lignes de:

root = os.path.split(__file__)[0] 
sys.path.insert(0, os.path.join(root, 'folder1')) 
sys.path.insert(0, os.path.join(root, 'folder2')) 

folderX est contenu dans le dossier app. Cet "ajustement de chemin" devrait être fait dans chaque "script de point d'entrée de demande" dans l'application.

+0

Voulez-vous dire que je devrais déplacer le répertoire facebook de /Library/Python/2.6/site-packages et le déplacer vers le même répertoire où settings.py est? J'ai juste essayé cela aussi, j'ai redémarré mon application et je reçois toujours la même erreur. Excuses si j'ai mal compris votre suggestion. – ryan

+0

Votre appengine 'app' existe dans le dossier' f': tous les modules requis doivent vivre sous 'f'. – jldupont

+0

est-ce que ma réponse vous aide? – jldupont

1

Google App Engine utilise python 2.5 runtime Je crois, donc vous devrez soit déplacer le répertoire facebook dans le projet comme suggéré ci-dessus ou le déplacer vers les paquets de site 2.5 si vous avez installé python 2.5.

Questions connexes