0

Objectif: Utilisez GAE avec Python et Google Cloud Storage pour stocker et diffuser une image plus efficacement afin d'utiliser l'API d'image.Aucun module nommé google_auth_httplib2

Problème: Impossible de trouver les modules corrects (httplib2 et six) malgré une installation réussie.


exemple Durée

code Python Exemple A:

from google.cloud import storage 
from google.appengine.api import app_identity 
from google.appengine.ext import blobstore 
from google.appengine.ext.webapp import blobstore_handlers 
import webapp2 

retour échantillon A:

ImportError: No module named google_auth_httplib2

Note: Également eu une erreur similaire pour six. "Aucun module nommé six"


python installé Détails

installé à:

C:\Python27 

six installés à:

C:\python27\lib\site-packages\six-1.10.0-py2.7.egg 

httplib2 installé à:

C:\Python27\Lib\site-packages\httplib2-0.9.2-py2.7.egg-info 

Running « C:> pip installer httplib2 » dans la ligne de commande retourne:

“Requirement already satisfied: httplib2 in c:\python27\lib\site-packages” 

Running « C:> pip installer six » dans le la ligne de commande renvoie:

Requirement already satisfied: six in c:\python27\lib\site-packages\six-1.10.0-py2.7.egg 

client GAE Cloud Storage installé à:

C:\Python27\Lib\site-packages\GoogleAppEngineCloudStorageClient-1.9.22.1-py2.7.egg-info 

GAE SDK serveur d'hébergement en utilisant "dev_appserver.py." à:

C:\Users\sebastian\Documents\Web Projects\Cookbook 

Cet emplacement contient également le fichier app.yaml.

modules à Copié app.yaml emplacement

Copié les et six-1.10.0-py2.7.egg dossiers à mon répertoire app.yaml.


Annexe 1:

app.yaml

runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 

    - url:/
     script: homegcs.app 

    - url: /static 
     static_dir: static 

    - url: /.* 
     script: home.app 

    - url: /index\.html 
     script: home.app 

    - url: /stylesheets 
     static_dir: stylesheets 

    - url: /(.*\.(gif|png|jpg))$ 
     static_files: static/\1 
     upload: static/.*\.(gif|png|jpg)$ 

    - url: /admin/.* 
     script: admin.app 
     login: admin 

    - url: /.* 
     script: not_found.app 

Folder structure containing App.yaml

Répondre

1

Vos colis doivent soit être téléchargés avec le projet, ou ajouté à app.yaml, si ils sont disponibles dans App Engine. six est une bibliothèque disponible, donc, à app.yaml, ajouter:

libraries: 
- name: six 
    version: "1.9.0" 

Si vous mettez le paquet au même niveau que app.yaml, il doit télécharger le projet, et disponible en production.

Un autre utilisateur a également ajouté google_auth_httplib2 en tant que package et l'a importé dans le projet. Bien que je pense que cela devrait être directement:

Module google_auth_httplib2 not found after pip installing google-cloud How can I fix it?

** Vous avez également un problème dans vos gestionnaires d'URL dans app.yaml. Ceci est un caractère générique pour toutes les URL:

- url: /.* 
    script: home.app 

Ainsi, chaque gestionnaire inférieur ne sera jamais touché.

+0

Merci, cela résout certainement 2 des 4 problèmes apparents. (gestionnaires de six et yaml). J'ai ajouté une image de la structure du dossier, car j'ai déjà à la fois httplib2 et google_auth_httplib2 dans mon répertoire app.yaml, mais la même erreur persiste en ce qui concerne google_auth_httplib2 introuvable. –

+0

'httplib2' et' google_auth_httplib2' sont 2 paquets différents. Votre erreur est que votre code recherche 'google_auth_httplib2', alors que vous avez' httplib2'. Changez votre code, ou utilisez le bon paquet (voir le lien dans ma réponse sur la façon dont un autre utilisateur l'a fait) – GAEfan

0

Vous devez installer google-Cloud dans votre projet, comme celui-ci:

pip install google-cloud -t [my_project]/lib/google-cloud 

Assurez-vous que vous créez ce dossier google-Cloud d'abord, dans votre dossier lib. Une fois que vous faites cela, modifier ou créer appengine_config.py (dans/my_project) et comprennent ceci:

from google.appengine.ext import vendor 

vendor.add('lib/google-cloud') 

Tout shoul fonctionne maintenant.

+0

merci, il semble certainement avoir corrigé une partie de celui-ci. l'erreur se lit maintenant « de stockage d'importation google.cloud Erreur d'importation: Aucun module nuage nommé » de @yamilabugattas –

+0

Êtes-vous que le dossier est dans le répertoire spécifié dans appengine_config.py? Assurez-vous de pip installer dans ce dossier. Essayez également d'ajouter depuis __future__ import absolute_import au début du fichier. –

+0

Cela n'a pas fonctionné pour moi – pkuhar