3

J'utilise google-auth pour autoriser l'authentification firebase dans mon projet GAE.GAE: ImportError lors de l'utilisation de google-auth

Tout fonctionne correctement lorsque j'exécute le code localement en utilisant dev_appserver.py ou lorsque je le déploie sur google app engine.

Mais j'obtiens ces exceptions ImportError lorsque j'essaie d'utiliser le script manage.py de Django pour créer/exécuter des migrations.

ImportError: Could not import 'firebase.authentication.FirebaseAuthentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ImportError: No module named auth.transport.requests. 

Le module google-auth est installé sous lib répertoire et a cette structure:

- lib - google - auth - oauth2

Ces importations causent la ImportErrors:

import google.auth.transport.requests 
from google.oauth2 import id_token 

Je suppose qu'il pourrait y avoir nommer conflits que d'autres importations fonctionnent bien.

Aidez s'il vous plaît!

+0

potentiellement lié: https://stackoverflow.com/questions/15878577/location-of-settings-py-for-django-project-hosted-in-google-app-engine –

+0

Mon ImportError est lié au fait que python ne trouve pas le module 'google-auth' dans le répertoire' lib'. 'dev_appserver.py app.yaml' fonctionne correctement. – AniT

+0

Je veux dire que c'est parce que vous exécutez 'manage.py' en tant qu'application autonome, pas en tant que GAE. Le message que j'ai suggéré semble inclure les paramètres de l'application GAE lors de l'exécution de 'manage.py', ce qui pourrait signifier qu'il dirige vers les bibliothèques que l'application GAE utilise. Si je comprends bien, je ne suis pas vraiment familier avec django. –

Répondre

0

Si vous souhaitez utiliser des bibliothèques tierces qui ne sont pas incluses dans this list, vous devrez les ajouter manuellement car vous avez ajouté cela en ajoutant le dossier lib et en incluant tout le dossier du paquet.

Créez votre répertoire répertoire_app_app/appengine_config.py.

Ajoutez ces lignes suivantes dans ce fichier

from google.appengine.ext import vendor 
vendor.add('lib') 

Cela devrait résoudre le problème d'erreur d'importation.

+0

Merci Bravin pour votre réponse rapide. J'ai déjà appengine_config.py, ce qui, je suppose, est la raison pour laquelle 'dev_appserver.py' fonctionne correctement et reconnaît les bibliothèques. Mais 'python manage.py makemigrations' aboutit à cette ImportError. Il doit faire quelque chose avec le nom de module 'google', car les autres importations fonctionnent bien. Peut-être y a-t-il un conflit entre googlecloudsdk et les bibliothèques google-auth? – AniT