Ich habe diesen Fehler in Python von Google App Engine verwendet, aber ich weiß nicht, wie ich ihn beheben soll.
<module>
from apiclient.discovery import build
ImportError: No module named apiclient.discovery
Ich werde versuchen, mgebung festlegen, die auf das Google App Engine SDK hinweist, und erneut auf Google Apps Engine hochzuladen, immer den Fehler anzeigen,
Fehler: Serverfehler
Der Server hat einen Fehler festgestellt und konnte Ihre Anfrage nicht abschließen. Wenn das Problem weiterhin besteht, melden Sie bitte Ihr Problem und erwähnen Sie diese Fehlermeldung und die Abfrage, die es verursacht hat.
Bitte sag mir, wie ich das beheben soll,
Vielen Dank
PDATE: Fixed Folgen Sie der Hilfe von Nijjin. Ich habe Probleme behoben, indem ich die folgenden Ordner hinzugefügt habe:
apiclient, gflags, httplib2, oauth2client, uritemplate
Sie sollten in der Lage sein, diese Abhängigkeiten mit dieser einfachen Installation zu erhalten:
Sudo pip install --upgrade google-api-python-client
Dies wird auf der Schnellstartseite für Python beschrieben.
apiclient
war der ursprüngliche Name der Bibliothek.
Irgendwann wurde auf googleapiclient
umgestellt.
Wenn Ihr Code in Google App Engine ausgeführt wird, sollten beide funktionieren.
Wenn Sie die Anwendung selbst ausführen und google-api-python-client installiert haben, sollten beide ebenfalls funktionieren.
Wenn wir uns jedoch den Quellcode des apiclient
-Pakets __init__.py
Modul , wir können sehen, dass das apiclient
Modul aus Gründen der Abwärtskompatibilität einfach beibehalten wurde.
Bewahren Sie apiclient als Alias für googleapiclient auf.
Sie sollten also wirklich googleapiclient
in Ihrem Code verwenden, da der Alias apiclient
nur beibehalten wurde, um den alten Code nicht zu beschädigen.
# bad
from apiclient.discovery import build
# good
from googleapiclient.discovery import build
apiclient
ist nicht in der Liste der Drittanbieter-Bibliotheken enthalten, die von der Appengine-Laufzeit bereitgestellt werden: http://developers.google.com/appengine/docs/python/tools/libraries27 .
Sie müssen apiclient
in Ihr Projektverzeichnis kopieren und diese uritemplate
& httplib2
Auch kopieren.
Hinweis: Alle Bibliotheken von Drittanbietern, die nicht in der Dokumentationsliste enthalten sind, müssen in Ihr Appengine-Projektverzeichnis kopiert werden
Wenn keine der oben genannten Lösungen für Sie funktioniert, prüfen Sie, ob Sie python= über Anaconda installiert haben. Wenn dies der Fall ist, kann dies durch die Installation der Google API-Bibliothek mit conda behoben werden.
Lauf:
python --version
Wenn Sie etwas wie bekommen
Python 3.6.4 :: Anaconda, Inc.
Dann versuche es:
conda install google-api-python-client
Wie bgoodr in einem Kommentar darauf hingewiesen hat, müssen Sie möglicherweise den Kanal (think repository) angeben, um die Google API-Bibliothek abzurufen. Zum Zeitpunkt des Schreibens bedeutet dies, dass der Befehl ausgeführt wird:
conda install -c conda-forge google-api-python-client
Weitere Informationen finden Sie unter https://anaconda.org/conda-forge/google-api-python-client
Für ein App-Engine-Projekt müssen Sie die lib lokal installieren, indem Sie Folgendes eingeben
pip install -t lib google-api-python-client
lesen Sie mehr hier
Es gibt einen Download für die Google-API Python Client-Bibliothek, die die Bibliothek und alle ihre Abhängigkeiten enthält, mit dem Namen google-api-python-client-gae- <version>) .Zip im Download-Bereich des Projekts. Entpacken Sie dies einfach in Ihr App Engine-Projekt.
Stellen Sie sicher, dass Sie nur google-api-python-client
Eingerichtet. Wenn Sie apiclient
installiert haben, führt dies zu einer Kollision. Führen Sie also Folgendes aus:
Sudo pip uninstall apiclient
Ich habe das Problem behoben, indem ich das Paket mit folgendem Befehl neu installiert habe:
pip install --force-reinstall google-api-python-client
Ich hatte das gleiche Problem aufgrund eines Fehlers bei der Installation des URITemplate-Moduls.
Dies löste das Problem:
pip install --force-reinstall uritemplate.py
für python3 hat das bei mir geklappt:
Sudo pip3 install --upgrade google-api-python-client
Bei der Arbeit an einem Projekt zum Analysieren der letzten Kalenderereignisse aus Google Kalender ist derselbe Fehler aufgetreten.
Die Verwendung der Standardinstallation mit pip hat bei mir nicht funktioniert. Hier ist, was ich getan habe, um die benötigten Pakete zu erhalten.
Gehe direkt zur Quelle, hier ist ein Link für den google-api-python-client , aber wenn du eine andere Sprache brauchst, sollte es nicht so sein anders.
https://github.com/google/google-api-python-client
Klicken Sie oben links auf die grüne Schaltfläche "Klonen oder Herunterladen" und speichern Sie sie als Zip-Datei. Verschieben Sie die Zip in Ihren Projektordner und extrahieren Sie sie dort. Schneiden Sie dann alle Dateien aus dem erstellten Ordner zurück in das Stammverzeichnis Ihres Projektordners.
Ja, dies überfrachtet Ihren Arbeitsbereich, aber viele Compiler haben Möglichkeiten, Dateien auszublenden.
Danach der Standard
from googleapiclient import discovery
funktioniert super.
Hoffe das hilft.
"google-api-python-client" benötigt:
pip install uritemplate.py
so beheben Sie ein Problem auf dem GAE Development Server:
from googleapiclient.discovery import build
ImportError: No module named googleapiclient.discovery
Ich bin auf dasselbe Problem gestoßen. Das hat funktioniert:
>>> import pkg_resources
>>> pkg_resources.require("google-api-python-client")
[google-api-python-client 1.5.3 (c:\python27), uritemplate 0.6 (c:\python27\lib\site-packages\uritemplate-0.6-py2.7.Egg), six 1.10.0 (c:\python27\lib\site-packages\six-1.10.0-py2.7.Egg), oauth2client 3.0.0 (c:\python27\lib\site-packages\oauth2client-3.0.0-py2.7.Egg), httplib2 0.9.2 (c:\python27\lib\site-packages\httplib2-0.9.2-py2.7.Egg), simplejson 3.8.2 (c:\python27\lib\site-packages\simplejson-3.8.2-py2.7-win32.Egg), six 1.10.0 (c:\python27\lib\site-packages\six-1.10.0-py2.7.Egg), rsa 3.4.2 (c:\python27\lib\site-packages\rsa-3.4.2-py2.7.Egg), pyasn1-modules 0.0.8 (c:\python27\lib\site-packages\pyasn1_modules-0.0.8-py2.7.Egg), pyasn1 0.1.9 (c:\python27\lib\site-packages\pyasn1-0.1.9-py2.7.Egg)]
>>> from apiclient.discovery import build
>>>
Es hat nur bei mir funktioniert, als ich Sudo verwendet habe:
Sudo pip install --upgrade google-api-python-client