ImportError: apiclient.discovery नाम का कोई मॉड्यूल नहीं


153

मुझे Google App Engine के Python में Google Translate API का उपयोग करने में यह त्रुटि मिली , लेकिन मुझे नहीं पता कि कैसे ठीक करना है,

<module>
from apiclient.discovery import build
ImportError: No module named apiclient.discovery

मैं Google App Engine SDK को इंगित करने वाले वातावरण को सेट करने का प्रयास करूँगा , और Google Apps इंजन पर फिर से अपलोड करूँगा , हमेशा त्रुटि मिलती है ,

त्रुटि: सर्वर त्रुटि

सर्वर में त्रुटि आई और आपका अनुरोध पूरा नहीं किया जा सका। यदि समस्या बनी रहती है, तो कृपया अपनी समस्या की रिपोर्ट करें और इस त्रुटि संदेश और उस क्वेरी का उल्लेख करें जिसके कारण यह हुआ।

कृपया मुझे बताएं कि कैसे ठीक करें,

धन्यवाद

अद्यतन करें: फिक्स्ड फॉलो करें निजिंज की मदद, मैंने निम्नलिखित फ़ोल्डरों को जोड़कर समस्याएं तय कीं,

apiclient, gflags, httplib2, oauth2client, uritemplate

यदि आपको अभी भी समस्या है, तो अधिक जानकारी प्राप्त करने के लिए कृपया इस पृष्ठ के उत्तर पर विचार करें। पूर्व। : वरुम उत्तर, आदि ...


क्या आपने apiclientअपने एपेंगिन प्रोजेक्ट में कोड डायरेक्टरी शामिल की थी ?
निजीन नारायणन

क्या आपका मतलब बाहरी पुस्तकालयों से है? (यह / Google ऐप इंजन SDK / google-api-python-client / apiclient / search.py ​​है) मैं आईडिया इंटेलीज का उपयोग करता हूं। अधिक जानकारी प्रदान करने के लिए धन्यवाद
Huy Tower

सुनिश्चित करें कि आप अपने कार्यक्रम को सूडो के रूप में नहीं चला रहे हैं क्योंकि पाइप आपके उपयोगकर्ता के घर पर काम करता है, तो रूट उपयोगकर्ता के पास ये पुस्तकालय नहीं हैंpip show PyDrive
deFreitas

cloud.google.com/sdk/docs प्रक्रिया के साथ मदद कर सकता है
जिओ

यह पहला पेज था जिसे मैंने हिट किया था, लेकिन मैं शुरुआत में निज़िन और वरुण से नीचे दिए गए उत्तर याद कर रहा था। लिंक से प्राप्त निर्देशों के बाद आपको मॉड्यूल को ऐप की कार्यशील निर्देशिका में 'थर्ड पार्टी पैकेज' के रूप में शामिल करना होगा। लिनक्स उबंटू पर, मुझे भी sudo का उपयोग करना पड़ता है जब -t स्विच का उपयोग करके lib / में स्थापित किया जाता है।
कीमिया

जवाबों:


240

आप इस सरल स्थापना के साथ इन निर्भरताओं को प्राप्त करने में सक्षम होना चाहिए:

sudo pip install --upgrade google-api-python-client

यह अजगर के लिए त्वरित शुरुआत पृष्ठ पर वर्णित है ।


7
मैं सिर्फ वही करने के बाद उसी त्रुटि का सामना करता हूं। खैर मैंने इसे स्थापित किया C:\>C:\Python27\Scripts\easy_install-script.py --upgrade google-api-python-clientऔर यह कहता है Installed c:\python27\lib\site-packages\google_api_python_client-1.3.1-py2.7.eggऔर फिर से स्थापित करने की कोशिश कर रहा google-api-python-client 1.3.1 is already the active version in easy-install.pth
हूं

5
उत्तर में प्रदान किया गया लिंक पायथन के साथ गोगल्स गेटिंग स्टार्ट में
नाथन

4
मुझे इस बात का कोई अंदाजा नहीं है कि sudoमेरे बिना काम किए उपरोक्त आदेश क्यों ।
एमटीके

5
पायथन 3 के लिए, पाइप को उपरोक्त कमांड में pip3 के साथ बदलने की आवश्यकता है। कुछ लोगों का मानना ​​है कि यह स्पष्ट नहीं हो सकता है।
एम्मेट बी

1
डेबियन 9 स्ट्रेच का उपयोग करते हुए मैंने कमांड sudo apt-get install python-googleapi python-oauth2clientऔर कमांड का उपयोग किया sudo apt-get install python3-googleapi python3-oauth2client। यह सही काम किया और मैं इस तरह से पसंद करता हूं क्योंकि मेरे पास एक पैकेज मैनेजर के साथ पर्याप्त है।
जेरार्ड

120

apiclientपुस्तकालय का मूल नाम था।
कुछ बिंदु पर, यह होने के लिए बंद कर दिया गया था googleapiclient

यदि आपका कोड Google App Engine पर चल रहा है, तो दोनों को काम करना चाहिए।

यदि आप एप्लिकेशन को स्वयं चला रहे हैं, तो google-api-python-client स्थापित होने के साथ ही दोनों को काम करना चाहिए।

हालाँकि, यदि हम पैकेज के मॉड्यूल के स्रोत कोडapiclient__init__.py पर एक नज़र डालते हैं, तो हम देख सकते हैं कि apiclientमॉड्यूल को पीछे की ओर संगतता के लिए बस रखा गया था।

Apoglient को googleapiclient के लिए एक उपनाम के रूप में बनाए रखें।

इसलिए, आपको वास्तव googleapiclientमें अपने कोड का उपयोग करना चाहिए , क्योंकि apiclientउर्फ बस विरासत कोड को नहीं तोड़ने के लिए बनाए रखा गया था।

# bad
from apiclient.discovery import build

# good
from googleapiclient.discovery import build

अधिक जानकारी: मुझे सिर्फ यह समस्या थी (पायथन 3.5.2), और importबयान में नाम बदलकर इसे ठीक कर दिया। मैंने PyCharm में एक फ़ाइल में Google का नमूना कोड स्थानांतरित कर दिया था, और जब PyCharm ने मुझे ऐसा करने के लिए एक पैकेज स्थापित करने के लिए प्रेरित apiclientकिया। जब मैंने वास्तव में इसे स्थापित किए गए मॉड्यूल को देखा, तो यह छोटा था और Google से संबंधित नहीं था।
नाथन वायल्स

10

apiclientAppengine रनटाइम द्वारा आपूर्ति की गई थर्ड पार्टी लाइब्रेरी की सूची में नहीं है: http://developers.google.com/appengine/docs/python/tools/lbooks27

आपको apiclientअपनी परियोजना निर्देशिका में कॉपी करने की आवश्यकता है और आपको इन uritemplateऔर को httplib2भी कॉपी करने की आवश्यकता है।

ध्यान दें: किसी भी तीसरे पक्ष के पुस्तकालय जिसे प्रलेखन सूची में आपूर्ति नहीं की गई है, उसे आपके एपेंगिन परियोजना निर्देशिका में कॉपी करना होगा


1
मैंने Google Translate API के पायथन का उपयोग किया है, इसलिए, मुझे इसकी आवश्यकता है: एपिक्लिएंट, गिफ्लैग्स, CANplib2, oauth2client, uritemplate। साभार: D
Huy Tower

जोर्विस का जवाब उन लोगों के लिए अधिक प्रासंगिक है जो एप्लिकेशन नहीं चला रहे हैं। अगर मैं ग़लत हूं तो मेरी गलती सुझाएं।
12

क्या यह वास्तव में सच है कि एपिफ़्लेकेंट डिफ़ॉल्ट पुस्तकालयों में शामिल नहीं है? हम Apiclient को PyCharm में Google App Engine SDK निर्देशिका में सूचीबद्ध निर्देशिका के रूप में देख सकते हैं। उस ने कहा, भले ही हम इसे वहां देखते हैं, हम अभी भी उसके प्रश्न को त्रुटि के रूप में देख रहे हैं।
प्रैक्सिटेल्स

8

यदि उपरोक्त समाधानों में से कोई भी आपके लिए काम नहीं करता है, तो विचार करें कि क्या आपने एनाकोंडा के माध्यम से अजगर स्थापित किया है। अगर ऐसा है तो गूगल एपीआई लाइब्रेरी को कोंडा के साथ इंस्टॉल करना इसे ठीक कर सकता है।

Daud:

python --version

अगर आपको कुछ मिलता है

Python 3.6.4 :: Anaconda, Inc.

फिर कोशिश करो:

conda install google-api-python-client

जैसा कि bgoodr ने एक टिप्पणी में बताया है कि आपको google API लाइब्रेरी प्राप्त करने के लिए चैनल (रिपॉजिटरी) को निर्दिष्ट करने की आवश्यकता हो सकती है। लिखने के समय इसका मतलब है कमांड चलाना:

conda install -c conda-forge google-api-python-client

Https://anaconda.org/conda-forge/google-api-python-client पर अधिक देखें


2
वास्तव में एक चैनल की आवश्यकता स्पष्ट रूप से है। देखें anaconda.org/conda-forge/google-api-python-client (-c विकल्प देखें)।
bgoodr

2
साभार @bgoodr मैंने जवाब में आपकी टिप्पणी को शामिल किया है।
जोनाथन हैनसेन

7

सुनिश्चित करें कि आपने ही google-api-python-clientस्थापित किया है। यदि आपने apiclientस्थापित किया है, तो यह टकराव का कारण होगा। तो, निम्नलिखित चलाएँ:

sudo pip uninstall apiclient

6

ऐप इंजन प्रोजेक्ट के लिए आप टाइप करके स्थानीय स्तर पर लिब्टा स्थापित कर सकते हैं

pip install -t lib google-api-python-client

यहाँ और पढ़ें


यह मुझे काम कर रहा है, हालांकि मुझे एक विक्रेता के रूप में काम करने वाली निर्देशिका को जोड़ने के लिए यहां भी जवाब का पालन करना
पड़ा

5

Google API Python Client लाइब्रेरी के लिए एक डाउनलोड है जिसमें लाइब्रेरी और इसकी सभी निर्भरताएँ हैं, जिसका नाम कुछ है जैसे कि google-api-python-client-gae- <version> .z इस परियोजना के डाउनलोड अनुभाग में। बस अपने ऐप इंजन प्रोजेक्ट में इसे अनज़िप करें।


5

मैंने पैकेज को पुनः स्थापित करके समस्या को ठीक किया:

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

5

python3 के लिए इसने मेरे लिए काम किया:

sudo pip3 install --upgrade google-api-python-client

4

URITemplate मॉड्यूल की स्थापना में बग के कारण मुझे एक ही समस्या थी।

इससे समस्या हल हो गई:

pip install --force-reinstall uritemplate.py

3

Google कैलेंडर से हाल के कैलेंडर ईवेंट को पार्स करने के प्रोजेक्ट पर काम करते समय मुझे यह त्रुटि मिली।

पाइप के साथ मानक स्थापित का उपयोग करना मेरे लिए काम नहीं करता था, यहां मैंने वही किया है जो मुझे आवश्यक पैकेजों को प्राप्त करने के लिए किया गया था।

सीधे स्रोत पर जाएं, यहां google-api-python-client के लिए एक लिंक है , लेकिन अगर आपको एक अलग भाषा की आवश्यकता है तो यह बहुत अलग नहीं होना चाहिए।

https://github.com/google/google-api-python-client

शीर्ष बाईं ओर हरे "क्लोन या डाउनलोड" बटन पर क्लिक करें और इसे ज़िप फ़ाइल के रूप में सहेजें। ज़िप को अपने प्रोजेक्ट फ़ोल्डर में ले जाएं और वहां निकालें। फिर फ़ोल्डर से सभी फाइलों को काट दें जो आपके प्रोजेक्ट फ़ोल्डर की जड़ में वापस आती है।

हां, यह आपके कार्य स्थान को अव्यवस्थित करता है, लेकिन कई संकलक के पास फ़ाइलों को छिपाने के तरीके हैं।

यह करने के बाद मानक

from googleapiclient import discovery

बहुत अच्छा काम करता है।

उम्मीद है की यह मदद करेगा।


2

"google-api-python-client" की आवश्यकता है:

pip install uritemplate.py

जीएई विकास सर्वर पर समस्या को ठीक करने के लिए:

from googleapiclient.discovery import build

ImportError: No module named googleapiclient.discovery

1

मैंने उसी मुद्दे का सामना किया। यह काम किया:

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

यह केवल मेरे साथ काम करता था जब मैंने sudo का उपयोग किया था:

sudo pip install --upgrade google-api-python-client

1

Https://developers.google.com/drive/api/v3/quickstart/python पर Google के गाइड का अनुसरण करने के बाद भी मुझे वही त्रुटि मिल रही थी , तब मुझे महसूस हुआ कि मुझे इस तरह से आमंत्रित करना था:

python3 quickstart.py

के बजाय:

python quickstart.py <-- WRONG

(नोट " 3")

निर्दोष रूप से काम किया।

मैं उपयोग कर रहा हूं Ubuntu 18.04.4 LTS


0

इसे इस्तेमाल करो

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.