ImportError: No module named apiclient.découverte
J'ai eu cette erreur en Google App Engine Python avons utilisé l'API Google Translate,
Mais je ne sais pas comment le résoudre,
<module>
from apiclient.discovery import build
ImportError: No module named apiclient.discovery
Je vais essayer de ensemble de l'environnement qui indique à Google App Engine SDK,
Et de les télécharger pour les Google Apps Moteur, toujours l'erreur,
D'Erreur: Erreur De Serveur
Le serveur a rencontré une erreur et ne pouvait pas répondre à votre demande.
Si le problème persiste, veuillez signaler votre problème et de mentionner ce message d'erreur et la requête qu'il a causé.
Merci de me dire comment résoudre,
Grâce
Mise à JOUR : correction
Suivez Nijjin de l'aide,
J'ai corrigé les problèmes en ajoutant les dossiers suivants,
apiclient, gflags, httplib2, oauth2client, uritemplate
- Avez-vous d'inclure
apiclient
répertoire de code dans votre appengine projet ? - entendez-vous les Bibliothèques Externes? (C'est l' /SDK Google App Engine/ google-api-python-client/apiclient/discovery.py)? J'utilise IDÉE d'IntelliJ. Merci de me donner plus d'informations
- Assurez-vous que vous n'êtes pas en cours d'exécution de votre programme sudo car pip installer des libs à votre accueil de l'utilisateur, puis l'utilisateur root n'a pas de ces bibliothèques
pip show PyDrive
- cloud.google.com/sdk/docs peut aider avec le processus de
- Ce fut la première page, j'ai frappé, mais j'ai raté les réponses ci-dessous au départ de Nijin et Varun. Vous avez besoin d'inclure ce module dans l'application répertoire de travail comme un "tiers" paquet suivant les instructions du lien. Sur Linux Ubuntu, j'ai également eu à utiliser sudo lorsque vous utilisez le commutateur-t installer à lib/.
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en mesure d'obtenir ces dépendances avec cette installation simple:
Ce qui est décrit sur le page de démarrage rapide pour python.
C:\>C:\Python27\Scripts\easy_install-script.py --upgrade google-api-python-client
et il ditInstalled c:\python27\lib\site-packages\google_api_python_client-1.3.1-py2.7.egg
et essayez d'installer à nouveaugoogle-api-python-client 1.3.1 is already the active version in easy-install.pth
sudo
a fonctionné pour moi.sudo apt-get install python-googleapi python-oauth2client
et la commandesudo apt-get install python3-googleapi python3-oauth2client
. Il a travaillé parfait et je préfère de cette façon parce que j'ai assez avec un gestionnaire de paquets.apiclient
était le nom original de la bibliothèque.À un certain point, il a été changé pour être
googleapiclient
.Si votre code est en cours d'exécution sur Google App Engine, les deux doivent travailler.
Si vous exécutez l'application vous-même, avec la google-api-python-client installé, les deux doivent travailler ainsi.
Bien que, si nous prenons un coup d'oeil à le code source de la
apiclient
paquet__init__.py
module, nous pouvons voir que leapiclient
module est simplement maintenu autour de pour la compatibilité ascendante.Alors vous devez vraiment être à l'aide de
googleapiclient
dans votre code, depuis leapiclient
alias était juste maintenu pour ne pas casser le code de legs.import
déclaration, il fixe. J'avais déménagé de Google exemple de code dans un fichier dans PyCharm, et quand PyCharm m'a incité à installer un package nomméapiclient
je l'ai fait. Quand j'ai regardé le module qu'il avait installé, il était minuscule et ne semblent pas être liées à Google.apiclient
n'est pas dans la liste de la troisième partie de la bibliothèque fournie par l'appengine runtime: http://developers.google.com/appengine/docs/python/tools/libraries27 .Vous avez besoin de copier
apiclient
dans votre répertoire de projet & vous devez copier cesuritemplate
&httplib2
trop.Remarque: un tiers de la bibliothèque qui ne sont pas fournies dans la liste de la documentation doivent copie de votre appengine répertoire de projet
Pour app engine projet tu dois installer la lib localement en tapant
lire plus ici
Si aucune des solutions ci-dessus ne fonctionnent pour vous, demandez-vous si vous avez installé python à travers Anaconda. Si c'est le cas, alors l'installation de l'API de google bibliothèque avec conda pourrait le réparer.
Exécuter:
Si vous obtenez quelque chose comme
Essayez:
Comme bgoodr a souligné dans un commentaire que vous pourriez avoir besoin de spécifier le canal (pensez référentiel) pour obtenir l'API google bibliothèque. Au moment de la rédaction de ce moyen d'exécuter la commande:
Voir plus à https://anaconda.org/conda-forge/google-api-python-client
Il y a un téléchargement pour la Google API Python de la bibliothèque du Client qui contient la bibliothèque et de ses dépendances, nommé quelque chose comme google-api-python-client-gae-<version>.zip dans la section téléchargements du projet. Il suffit de dézipper dans votre App Engine projet.
Assurez-vous que vous avez seulement
google-api-python-client
installé. Si vous avezapiclient
installé, il va provoquer une collision. Donc, exécutez la commande suivante:J'ai eu le même problème à cause d'un bug dans l'installation de la URITemplate module.
Cela a résolu le problème:
J'ai résolu le problème en réinstallant le paquet avec:
pour python3 cela a fonctionné pour moi:
"google-api-python-client" nécessite:
pour corriger problème sur GAE Serveur de Développement:
J'ai eu ce même message d'erreur lorsque vous travaillez sur un projet visant à analyser les récents événements de calendrier de Calendrier Google.
Utilisant le standard de l'installer avec le pip ne fonctionne pas pour moi, voici ce que j'ai fait pour obtenir les paquets dont j'ai besoin.
Aller directement à la source, voici un lien pour le google-api-python-client, mais si vous avez besoin d'une autre langue, il ne devrait pas être trop différents.
https://github.com/google/google-api-python-client
Cliquez sur le vert "Clone ou Télécharger" bouton en haut à gauche et l'enregistrer comme un fichier zip. Déplacer le zip dans votre dossier de projet et l'extraire de là. Ensuite, couper tous les fichiers à partir du dossier dans lequel il crée de retour dans la racine du dossier de votre projet.
Oui, cela ne l'encombrement de votre espace de travail, mais de nombreux compilateurs ont les moyens de cacher des fichiers.
Après avoir fait cela, la norme
fonctionne très bien.
Espère que cette aide.
J'ai rencontré le même problème.
Cela a fonctionné:
Il n'a travaillé avec moi lorsque je l'ai utilisé sudo: