0

Ziel: Verwenden Sie GAE mit Python und Google Cloud Storage, um ein Bild effizienter zu speichern und bereitzustellen, um schließlich die Image-API zu verwenden.Kein Modul namens google_auth_httplib2

Problem: Kann trotz erfolgreicher Installation keine korrekten Module (httplib2 und sechs) finden.


Laufzeit Beispiel

Python Code-Beispiel 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 

Returns Probe A:

ImportError: No module named google_auth_httplib2

Hinweis: hatte auch einen ähnlichen Fehler für sechs. "Kein Modul sechs Namen"


Einzelheiten Installierte

Python bei installiert:

C:\Python27 

sechs installiert unter:

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

httplib2 installiert unter:

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

Running „C:> pip installieren httplib2“ in der Kommandozeile zurückgibt:

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

Running „C:> pip sechs installieren“ in der Befehlszeile gibt zurück:

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

GAE Cloud Storage-Client bei installiert: "dev_appserver.py"

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

GAE SDK Server Hosting mit an:

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

Diese Position enthält auch die Datei app.yaml.

Kopierte Module app.yaml Standort

Kopiert die und six-1.10.0-py2.7.egg Ordner mein app.yaml Verzeichnis.


Anhang 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

Antwort

1

Ihre Pakete müssen entweder mit dem Projekt hochgeladen werden, oder in app.yaml hinzugefügt, wenn Sie sind in App Engine verfügbar. six ist eine vorhandene Bibliothek, so, in app.yaml hinzu:

libraries: 
- name: six 
    version: "1.9.0" 

Wenn Sie das Paket auf dem gleichen Niveau wie app.yaml setzen, es mit dem Projekt vorstellen soll, und in der Produktion zur Verfügung steht.

Ein anderer Benutzer hat google_auth_httplib2 als Paket hinzugefügt und mit dem Projekt hochgeladen. Obwohl ich glaube, das direkt zur Verfügung stehen soll:

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

** Sie auch ein Problem in Ihren URL-Handler in app.yaml haben. Dies ist ein Platzhalter für alle URLs:

- url: /.* 
    script: home.app 

Also wird jeder Handler darunter nie getroffen werden.

+0

Danke, das löst sicherlich 2 von 4 der offensichtlichen Probleme. (sechs und yaml Handler). Ich habe ein Bild der Ordnerstruktur hinzugefügt, da ich bereits httplib2 und google_auth_httplib2 in meinem app.yaml-Verzeichnis habe, aber immer noch den gleichen Fehler in Bezug auf google_auth_httplib2 nicht gefunden. –

+0

'httplib2' und' google_auth_httplib2' sind 2 verschiedene Pakete. Ihr Fehler ist, dass Ihr Code nach 'google_auth_httplib2' sucht, während Sie' httplib2' haben. Wechseln Sie Ihren Code oder verwenden Sie das richtige Paket (siehe den Link in meiner Antwort, wie ein anderer Benutzer das getan hat) – GAEfan

0

Sie müssen Google-Cloud in Ihrem Projekt installieren, wie folgt aus:

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

Stellen Sie sicher, Sie erstellen, dass Google-Cloud-Ordner zuerst, in Ihrem Ordner lib. Sobald Sie das tun, ändern oder erstellen appengine_config.py (in/my_project) und umfassen diese:

from google.appengine.ext import vendor 

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

Alles shoul jetzt arbeiten.

+0

danke, das scheint sicherlich etwas davon behoben zu haben. der Fehler liest jetzt „von google.cloud Import Speicher Import Fehler: Keine Modul namens Wolke“ @yamilabugattas –

+0

Sind Sie sicher, dass der Ordner in dem Verzeichnis, in appengine_config.py angegeben ist? Stellen Sie sicher, dass Sie Pip in diesem Ordner installieren. Versuchen Sie auch, aus __future__ import absolute_import am Anfang der Datei hinzuzufügen. –

+0

Das hat bei mir nicht funktioniert – pkuhar