it-swarm.com.de

ImportError: Kein Modul mit dem Namen apiclient.discovery

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

132
Huy Tower

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.

209
Jorvis

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
99
Jesse Webb

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

10
Nijin Narayanan

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

6
Jonathan Hansen

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

6
varun

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.

5
Joe Gregorio

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
5
Keith Holliday

Ich habe das Problem behoben, indem ich das Paket mit folgendem Befehl neu installiert habe:

pip install --force-reinstall google-api-python-client
4
mrmuggles

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
4
wizmer

für python3 hat das bei mir geklappt:

Sudo pip3 install --upgrade google-api-python-client
3
R3n4

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.

2
Conrad Selig

"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
2
Dan

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
>>> 
1
Rathna

Es hat nur bei mir funktioniert, als ich Sudo verwendet habe:

Sudo pip install --upgrade google-api-python-client
0
momen