J'ai eu cette erreur dans Python de Google App Engine j'ai utilisé l'API Google Translate, mais je ne sais pas comment résoudre le problème,
<module>
from apiclient.discovery import build
ImportError: No module named apiclient.discovery
Je vais essayer de définir l'environnement qui indique à Google App Engine SDK, et le télécharger à nouveau sur Google Apps Engine, toujours obtenir l'erreur,
Erreur: Erreur du serveur
Le serveur a rencontré une erreur et n'a pas pu terminer votre demande. Si le problème persiste, signalez-le et mentionnez ce message d'erreur et la requête qui l'a provoqué.
S'il vous plaît dites-moi comment réparer,
Merci
PDATE: Fixe Suivez l'aide de Nijjin, j'ai corrigé des problèmes en ajoutant les dossiers suivants,
apiclient, gflags, httplib2, oauth2client, uritemplate
Vous devriez pouvoir obtenir ces dépendances avec cette installation simple:
Sudo pip install --upgrade google-api-python-client
Ceci est décrit à la page page de démarrage rapide de python .
apiclient
était le nom d'origine de la bibliothèque.
À un moment donné, il a été basculé pour devenir googleapiclient
.
Si votre code est exécuté sur Google App Engine, les deux devraient fonctionner.
Si vous exécutez vous-même l'application avec le google-api-python-client installé, les deux devraient également fonctionner.
Bien que, si nous regardons le code source du module __init__.py
du paquet apiclient
, le paquetage _] , nous pouvons voir que le module apiclient
a été simplement conservé à l'envers. -compatibilité.
Conservez apiclient comme pseudonyme pour googleapiclient.
Donc, vous devriez vraiment utiliser googleapiclient
dans votre code, car l'alias apiclient
a été maintenu afin de ne pas casser le code hérité.
# bad
from apiclient.discovery import build
# good
from googleapiclient.discovery import build
apiclient
ne figure pas dans la liste des bibliothèques tierces fournies par le moteur d'exécution d'Appengine: http://developers.google.com/appengine/docs/python/tools/libraries27 .
Vous devez copier apiclient
dans votre répertoire de projet et copier également ces uritemplate
& httplib2
.
Remarque: Toute bibliothèque tierce non fournie dans la liste de documentation doit être copiée dans le répertoire de votre projet Appengine.
Si aucune des solutions ci-dessus ne vous convient, demandez-vous si vous avez peut-être installé python via Anaconda. Si tel est le cas, l'installation de la bibliothèque de Google API avec conda peut résoudre le problème.
Courir:
python --version
Si vous obtenez quelque chose comme
Python 3.6.4 :: Anaconda, Inc.
Alors essaye:
conda install google-api-python-client
Comme bgoodr l’a souligné dans un commentaire, vous devrez peut-être spécifier le canal (pensez au référentiel) pour obtenir la bibliothèque Google API. Au moment de l'écriture, cela signifie exécuter la commande:
conda install -c conda-forge google-api-python-client
Voir plus sur https://anaconda.org/conda-forge/google-api-python-client
Pour un projet de moteur d'application, vous devez installer la bibliothèque localement en tapant
pip install -t lib google-api-python-client
lire plus ici
Il existe un téléchargement pour l'API Google Python. La bibliothèque client contient la bibliothèque et toutes ses dépendances, nommée ainsi: google-api-python-client-gae- <version> .Zip dans la section des téléchargements du projet. Décompressez simplement ceci dans votre projet App Engine.
Assurez-vous que vous n'avez que google-api-python-client
installé. Si vous avez apiclient
installé, cela provoquera une collision. Donc, lancez ce qui suit:
Sudo pip uninstall apiclient
J'ai résolu le problème en réinstallant le paquet avec:
pip install --force-reinstall google-api-python-client
J'ai eu le même problème à cause d'un bogue dans l'installation du module URITemplate.
Cela a résolu le problème:
pip install --force-reinstall uritemplate.py
pour python3 cela a fonctionné pour moi:
Sudo pip3 install --upgrade google-api-python-client
J'ai eu la même erreur lorsque je travaillais sur un projet pour analyser les événements récents de l'agenda de Google Agenda.
L'utilisation de l'installation standard avec pip ne fonctionnait pas pour moi, voici ce que j'ai fait pour obtenir les packages dont j'avais besoin.
Allez directement à la source, voici un lien pour le google-api-python-client , mais si vous avez besoin d'une autre langue, cela ne devrait pas être trop différent.
https://github.com/google/google-api-python-client
Cliquez sur le bouton vert "Cloner ou télécharger" en haut à gauche et enregistrez-le en tant que fichier Zip. Déplacez le fichier Zip dans le dossier de votre projet et extrayez-le. Ensuite, coupez tous les fichiers du dossier créé à la racine du dossier de votre projet.
Oui, cela encombre votre espace de travail, mais de nombreux compilateurs ont des moyens de masquer des fichiers.
Après cela, le standard
from googleapiclient import discovery
fonctionne très bien.
J'espère que cela t'aides.
"google-api-python-client" nécessite:
pip install uritemplate.py
pour résoudre le problème sur GAE Development Server:
from googleapiclient.discovery import build
ImportError: No module named googleapiclient.discovery
J'ai rencontré le même problème. Cela a fonctionné:
>>> 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
>>>
Cela ne fonctionnait que lorsque j'ai utilisé Sudo:
Sudo pip install --upgrade google-api-python-client