Google की डेटा Python लाइब्रेरी का इस्तेमाल शुरू करना

जेफ़्री स्कॉडर, Google डेटा एपीआई टीम
अगस्त 2007

सुविधा के बारे में जानकारी

इसलिए आपने Google डेटा Python क्लाइंट लाइब्रेरी का उपयोग करके Google डेटा सेवाओं में से किसी एक का उपयोग करके ऐप्लिकेशन लिखने का निर्णय लिया है. बहुत बढ़िया जवाब! इस छोटे ट्यूटोरियल से मेरा मकसद, क्लाइंट लाइब्रेरी का इस्तेमाल करके अपना ऐप्लिकेशन जल्दी डेवलप करना है.

ऐसे में, हो सकता है कि आप तुरंत ऐप्लिकेशन बनाना शुरू कर दें. हालांकि, पहले आपको अपना डेवलपमेंट एनवायरमेंट कॉन्फ़िगर करना होगा और ऐसे टूल सेट अप करने होंगे जो क्लाइंट लाइब्रेरी में शामिल मॉड्यूल चलाने के लिए ज़रूरी होंगे. नीचे दिया गया तरीका आज़माएं और कुछ ही समय में आपको कोड दिखने लगेगा.

Python इंस्टॉल करना

अगर आपको Python क्लाइंट लाइब्रेरी के साथ डेवलप करना है, तो आपके पास Python 2.2 या उसके बाद वाले वर्शन का काम करने वाला वर्शन होना चाहिए. कई ऑपरेटिंग सिस्टम में Python का वर्शन शामिल होता है, इसलिए आप इंस्टॉल करने का चरण छोड़ सकते हैं. यह देखने के लिए कि आपके पास Python का कौनसा वर्शन है, कमांड लाइन टर्मिनल में python -V चलाएं. (ध्यान दें: V अपरकेस है.) इसका नतीजा कुछ ऐसा होना चाहिए:

Python 2.4.3

अगर आपको वर्शन 2.2 या उसके बाद का वर्शन दिखता है, तो आप डिपेंडेंसी इंस्टॉल करना शुरू कर सकते हैं. नहीं तो, अपने ऑपरेटिंग सिस्टम के लिए इंस्टॉलेशन/अपग्रेड निर्देश देखने के लिए नीचे देखें.

Windows पर Python इंस्टॉल करना

Windows में Python चुनने के लिए बहुत कुछ लागू किया गया है, लेकिन इस गाइड के लिए, मैं python .org पर मौजूद.msi इंस्टॉलर का इस्तेमाल करूंगा/करूंगी.

  1. Python डाउनलोड पेज से इंस्टॉलर डाउनलोड करके शुरू करें.
  2. इंस्टॉलर चलाएं - आप सभी डिफ़ॉल्ट सेटिंग स्वीकार कर सकते हैं
  3. यह देखने के लिए कि आपका इंस्टॉल आपकी उम्मीद के मुताबिक काम कर रहा है या नहीं, कमांड प्रॉम्प्ट खोलें और python -V चलाएं.

Mac OS X पर Python इंस्टॉल करना

python.org पर डाउनलोड की सूची में Mac उपयोगकर्ताओं के लिए .dmg इंस्टॉल करने वाले लोग हैं. इनमें से किसी एक को इंस्टॉल करने का तरीका यहां दिया गया है:

  1. http://www.python.org/download/mac/ पर जाएं
  2. इस पेज से, इंस्टॉलर को Mac OS X के उपयुक्त वर्शन के लिए डाउनलोड करें. ध्यान दें: Mac OS X 10.3.8 और इससे पुराने वर्शन के लिए Python इंस्टॉल करने का पेज, Mac OS X के नए वर्शन से अलग है. अपने OS X का वर्शन ढूंढने के लिए, स्क्रीन के सबसे ऊपर बाएं कोने में Apple मेन्यू से इस Mac के बारे में जानकारी चुनें.
  3. डाउनलोड पूरा हो जाने पर, नई डिस्क की इमेज फ़ाइल (जैसे, python-2.5-macosx.dmg) को माउंट करने के लिए उस पर दो बार क्लिक करें. अगर आप Safari चला रहे हैं, तो यह आपके लिए पहले ही की जा चुकी है.
  4. माउंट की गई इमेज खोलें और इंस्टॉलर पैकेज पर दो बार क्लिक करें.
  5. इंस्टॉल करने के निर्देशों का पालन करें. साथ ही, आपको लाइसेंस के साथ हुई जानकारी और लाइसेंस के कानूनी समझौते पढ़ें. ध्यान रखें कि डिफ़ॉल्ट सेटिंग यहां ठीक तरह से काम करेंगी.
  6. टर्मिनल (.Applications/Utilities) में टर्मिनल खोलकर और python -V को चलाकर पुष्टि करें. इंस्टॉलेशन का वर्शन दिखना चाहिए.

Linux पर Python इंस्टॉल करना

Linux और अन्य *निक्स स्टाइल ऑपरेटिंग सिस्टम पर इंस्टॉल करने के लिए, मुझे सोर्स कोड डाउनलोड करना और उसे कंपाइल करना पसंद है. हालांकि, Python इंस्टॉल करने के लिए, अपने पसंदीदा पैकेज मैनेजर का इस्तेमाल किया जा सकता है. (उदाहरण के लिए, Ubuntu पर, कमांड लाइन पर sudo apt-get install python चलाना उतना ही आसान हो सकता है.) स्रोत से इंस्टॉल करने के लिए, यह तरीका अपनाएं:

  1. Python डाउनलोड पेज से सोर्स टैरबॉल डाउनलोड करें.
  2. पैकेज डाउनलोड करने के बाद, कमांड लाइन का इस्तेमाल करके उसे अनपैक करें. ये
    tar zxvf Python-2.<Your version>.tgz
    इस्तेमाल किए जा सकते हैं
  3. इसके बाद, आपको Python अनुवादक के लिए सोर्स कोड को कंपाइल और इंस्टॉल करना होगा. कंप्रेस की गई डायरेक्ट्री में, ./configure को चलाकर मेकफ़ाइल जनरेट करें.
  4. इसके बाद, make चलाएं. इससे लोकल डायरेक्ट्री में, Python चलाने लायक फ़ाइल काम करेगी. अगर आपके पास रूट अनुमति नहीं है या आप Python का इस्तेमाल अपनी होम डायरेक्ट्री से करना चाहते हैं, तो आप यहां रुक सकते हैं. आप इस डायरेक्ट्री से Python चला सकते हैं, इसलिए हो सकता है कि आप इसे अपने PATH एनवायरमेंट वैरिएबल में जोड़ना चाहें.
  5. मुझे /usr/bin/ में Python इंस्टॉल करना पसंद है. इसमें ज़्यादातर Python स्क्रिप्ट, अनुवादक के लिए काम करती हैं. अगर आपके पास रूट ऐक्सेस है, तो make install को रूट की तरह चलाएं. यह डिफ़ॉल्ट जगह पर Python इंस्टॉल कर देगा. साथ ही, इसे आपकी मशीन पर सभी के लिए इस्तेमाल किया जा सकेगा.
  6. टर्मिनल को खोलकर और python -V चलाकर देखें कि आपका इंस्टॉल ठीक से काम कर रहा है या नहीं.

डिपेंडेंसी इंस्टॉल करना

फ़िलहाल, एक्सटर्नल डिपेंडेंसी, सिर्फ़ ElementTree नाम की एक्सएमएल लाइब्रेरी है. अगर आप Python वर्शन 2.5 या उसके बाद वाले वर्शन का इस्तेमाल कर रहे हैं, तो आपको ElementTree इंस्टॉल नहीं करना होगा, क्योंकि यह Python पैकेज के साथ आता है.

यह देखने के लिए कि आपके सिस्टम पर ElementTree पहले से मौजूद है या नहीं:

  1. Python अनुवादक को चलाएं. आम तौर पर, मैं कमांड लाइन पर python का इस्तेमाल करके ऐसा करता/करती हूं.
  2. ElementTree मॉड्यूल इंपोर्ट करके देखें. अगर Python 2.5 या इसके बाद वाले वर्शन का इस्तेमाल किया जा रहा है, तो अनुवादक मोड में यह जानकारी डालें:
    from xml.etree import ElementTree
    पुराने वर्शन के लिए, यह डालें:
    from elementtree import ElementTree
  3. अगर इंपोर्ट नहीं हो पाता है, तो आपको इस सेक्शन को पढ़ना जारी रखना होगा. अगर यह काम करता है, तो सीधे Google डेटा लाइब्रेरी इंस्टॉल करने का विकल्प चुनें.
  4. ऐसा वर्शन डाउनलोड करें जो आपके ऑपरेटिंग सिस्टम के लिए सही हो. उदाहरण के लिए, अगर Windows का इस्तेमाल किया जा रहा है, तो एलीट्री-1.2.6-20050316.win32.exe डाउनलोड करें. हमारा सुझाव है कि दूसरे ऑपरेटिंग सिस्टम के लिए, कंप्रेस किया गया वर्शन डाउनलोड करें.
  5. अगर आप लाइब्रेरी का .tar.gz या .zip वर्शन इस्तेमाल कर रहे हैं, तो सबसे पहले इसे अनपैक करें. इसके बाद, इसे ./setup.py install पर इंस्टॉल करें.

./setup.py install को चलाने की कोशिश रहती है कि लाइब्रेरी को कंपाइल किया जा सके और उसे आपके Python मॉड्यूल के लिए सिस्टम डायरेक्ट्री में रखा जाए. अगर आपके पास रूट ऐक्सेस नहीं है, तो आप ./setup.py install --home=~ को चलाकर अपनी होम डायरेक्ट्री या किसी दूसरी जगह पर मॉड्यूल इंस्टॉल कर सकते हैं. यह आपकी होम डायरेक्ट्री में कोड डाल देगा.

एक अन्य विकल्प है, जो इंस्टॉल करने से पूरी तरह बचता है. डाउनलोड को कंप्रेस करने के बाद, आपको elementtree नाम की डायरेक्ट्री मिलेगी. इस डायरेक्ट्री में ऐसे मॉड्यूल होते हैं जिन्हें आपको इंपोर्ट करना होता है. जब आप Python से इंपोर्ट को कॉल करते हैं, तो यह कई जगहों पर मनचाहे नाम वाला मॉड्यूल खोजता है. ऐसा लगता है कि यह पहली जगह मौजूदा डायरेक्ट्री में है. इसलिए, अगर आपको हमेशा अपना कोड एक ही डायरेक्ट्री से चलाना है, तो elementtree डायरेक्ट्री का इस्तेमाल करें. Python आपके PYTHONPATH एनवायरमेंट वैरिएबल की सूची में मौजूद डायरेक्ट्री को भी देखेगा. अपने PYTHONPATH में बदलाव करने के बारे में निर्देश पाने के लिए, इस लेख के आखिर में दिया गया अपेंडिक्स देखें. मेरी सलाह है कि आप elementtree के लिए ./setup.py install का इस्तेमाल करें.

Google डेटा लाइब्रेरी इंस्टॉल करना

अगर आपने Google डेटा Python लाइब्रेरी डाउनलोड नहीं की है, तो उसे डाउनलोड करें. Python प्रोजेक्ट के डाउनलोड पेज पर सबसे नया वर्शन देखें.

लाइब्रेरी डाउनलोड करने के बाद, डाउनलोड या डाउनलोड के हिसाब से, इसे unzip या tar zxvf की मदद से अनपैक करें.

अब आप लाइब्रेरी मॉड्यूल इंस्टॉल करने के लिए तैयार हैं, ताकि उन्हें Python में इंपोर्ट किया जा सके. ऐसा आप कई तरीकों से कर सकते हैं:

  • अगर आप सभी उपयोगकर्ताओं के लिए पैकेज इंस्टॉल करने की क्षमता रखते हैं, तो आप पैक नहीं किए गए संग्रह की मुख्य डायरेक्ट्री से ./setup.py install चला सकते हैं.
  • अगर आपको अपनी होम डायरेक्ट्री में इन मॉड्यूल को इस्तेमाल करने के लिए इंस्टॉल करना है, तो ./setup.py install --home=<your home directory> का इस्तेमाल करें.
  • कुछ मामलों में, आपको मॉड्यूल को पूरी तरह से इंस्टॉल करने से बचना है. ऐसा करने के लिए, अपने PYTHONPATH एनवायरमेंट वैरिएबल में बदलाव करें, ताकि Google Data Python क्लाइंट लाइब्रेरी के लिए gdata और atom डायरेक्ट्री वाली एक डायरेक्ट्री शामिल की जा सके. अपने PYTHONPATH में बदलाव करने के निर्देशों के लिए, इस लेख के आखिर में अपेंडिक्स देखें.

  • एक आखिरी विकल्प, जो मैं आपको बताना चाहता/चाहती हूं वह है gdata और atom डायरेक्ट्री को src डायरेक्ट्री से कॉपी करना, चाहे आप python को रन कर रहे हों या नहीं. इंपोर्ट करते समय Python मौजूदा डायरेक्ट्री में दिखेगा. हालांकि, हम इस तरीके को इस्तेमाल करने का सुझाव तब तक नहीं देते, जब तक कि कोई आसान और तेज़ सेटिंग नहीं बनाई जाती.

Google डेटा लाइब्रेरी इंस्टॉल करने के बाद, आप टेस्ट ड्राइव के लिए लाइब्रेरी ले जा सकते हैं.

चल रहे टेस्ट और सैंपल

Google डेटा Python क्लाइंट लाइब्रेरी डिस्ट्रिब्यूशन में कुछ टेस्ट केस शामिल होते हैं, जिनका इस्तेमाल लाइब्रेरी बनाने के लिए किया जाता है. वे तेज़ी से जांच करके यह भी पक्का कर सकते हैं कि आपकी डिपेंडेंसी और लाइब्रेरी को इंस्टॉल करने की सुविधा काम कर रही है या नहीं. जिस टॉप लेवल डायरेक्ट्री में आपने लाइब्रेरी की कॉपी अनपैक की है उसे चलाकर देखें:

./tests/run_data_tests.py

अगर यह स्क्रिप्ट सही तरीके से चलती है, तो आपको कमांड लाइन पर इस तरह से आउटपुट दिखेगा:

Running all tests in module gdata_test
.......
----------------------------------------------------------------------
Ran 7 tests in 0.025s

OK

Running all tests in module atom_test
..........................................
----------------------------------------------------------------------
Ran 42 tests in 0.016s

OK

...

अगर टेस्ट के दौरान किसी तरह की गड़बड़ी नहीं दिखती है, तो हो सकता है कि आपने सही तरीके से एनवायरमेंट सेट अप किया हो. बधाई हो!

अब आप कुछ और दिलचस्प बातें शुरू कर सकते हैं. इस डिस्ट्रिब्यूशन में एक samples डायरेक्ट्री शामिल होती है, जिसमें एक कोड होता है. इस कोड से ऐप्लिकेशन की शुरुआत होती है. अगर आप एक आसान इंटरैक्टिव नमूना आज़माना चाहते हैं, तो ./samples/docs/docs_example.py चलाकर देखें. Google दस्तावेज़ सूची API नमूना आपको अपने Google खाते के लिए ईमेल पते और पासवर्ड के लिए संकेत देगा. अगर आपके पास Google दस्तावेज़ों में कोई दस्तावेज़ या स्प्रेडशीट है, तो आप अपने चुने गए संचालन के लिए 1 डालकर उन्हें सूची में रख सकते हैं. (अगर आपके पास कोई दस्तावेज़ या स्प्रेडशीट नहीं है, तो आपको 404 गड़बड़ी मिलेगी.)

अगर कोई खास Google डेटा सेवा है जिसमें आपकी दिलचस्पी है, तो उसके नमूने को देखकर जानें कि लाइब्रेरी का इस्तेमाल कैसे किया जा सकता है. ज़्यादातर सुविधाएं सैंपल कोड में दिखाई जाती हैं, लेकिन सभी सुविधाएं नहीं. इसलिए, आपको एपीआई के साथ क्या करना है, इस बारे में साफ़ तौर पर जानने के लिए उस सेवा के दस्तावेज़ को देखें जिस पर आपको काम करना है.

"Hello World" का उदाहरण

आइए, एक आसान उदाहरण से शुरुआत करते हैं. यहां आपके Google दस्तावेज़ खाते में सभी दस्तावेज़ों की सूची प्रिंट करने के लिए एक छोटा प्रोग्राम दिया गया है:

import gdata.docs.service

# Create a client class which will make HTTP requests with Google Docs server.
client = gdata.docs.service.DocsService()
# Authenticate using your Google Docs email address and password.
client.ClientLogin('jo@gmail.com', 'password')

# Query the server for an Atom feed containing a list of your documents.
documents_feed = client.GetDocumentListFeed()
# Loop through the feed and extract each document entry.
for document_entry in documents_feed.entry:
  # Display the title of the document on the command line.
  print document_entry.title.text

ऊपर दिए गए कोड स्निपेट को फ़ाइल के तौर पर सेव करें और उसे Python की अनुवादक भाषा में चिपकाएं. काम करने के दौरान, Google Data Python क्लाइंट लाइब्रेरी देखें.

नतीजा

अब जबकि आपने Google डेटा Python क्लाइंट लाइब्रेरी इंस्टॉल कर लिया है और इसकी जांच कर ली है, तो आप इसका इस्तेमाल करके अगला शानदार ऐप्लिकेशन लिखने के लिए तैयार हैं:

जैसे-जैसे आपका ऐप्लिकेशन डेवलप होता जाएगा, हो सकता है कि आपके लिए कोई समस्या आ जाए. अगर ऐसा है, तो कृपया यहां दिए गए संसाधनों की सूची देखें:

अगर आपको लाइब्रेरी में कोई नई सुविधा जोड़नी है या उसमें कोई गड़बड़ी मिल सकती है, तो कृपया उसे बातचीत के ग्रुप में डालें. हम आपके सुझाव, शिकायत या राय में हमेशा दिलचस्पी रखते हैं!

कोडिंग करते रहें :-)

अपेंडिक्स: PYTHONPATH को बदलना

जब आप Python में पैकेज या मॉड्यूल इंपोर्ट करते हैं, तो अनुवादक फ़ाइल कई जगहों पर खोजता है, जिसमें PYTHONPATH एनवायरमेंट वैरिएबल में शामिल सभी डायरेक्ट्री शामिल होती हैं. मैं अक्सर अपने मॉड्यूल में बदलाव करने के लिए अपना PYTHONPATH संशोधित करता/करती हूं, जहां मैंने उस लाइब्रेरी का स्रोत कोड कॉपी किया है, जिसका मैं उपयोग कर रहा/रही हूं. इससे, हर बार मॉड्यूल में बदलाव होने पर, मॉड्यूल इंस्टॉल करने की ज़रूरत नहीं होती है, क्योंकि Python मॉड्यूल को सीधे उस डायरेक्ट्री से लोड करेगा जिसमें बदला गया सोर्स कोड है.

अगर आप क्लाइंट लाइब्रेरी कोड में बदलाव कर रहे हैं या आपके पास अपने सिस्टम पर एडमिन के अधिकार नहीं हैं, तो हमारा सुझाव है कि PYTHONPATH तरीका अपनाएं. PYTHONPATH में बदलाव करके, आप अपनी पसंद के मॉड्यूल को कहीं भी डाल सकते हैं.

मैंने अपने PYTHONPATH को *nix और Mac OS X सिस्टम पर, अपनी .bashrc शेल कॉन्फ़िगरेशन फ़ाइल में सेट करके बदला है. अगर आप bash Shell का इस्तेमाल कर रहे हैं, तो आप अपनी ~/.bashrc फ़ाइल में यह लाइन जोड़कर वैरिएबल सेट कर सकते हैं.

export PYTHONPATH=$PYTHONPATH:/home/<my_username>/svn/gdata-python-client/src

इसके बाद, source ~/.bashrc को लागू करके, इन बदलावों को अपने मौजूदा शेल सेशन में लागू किया जा सकता है.

Windows XP के लिए, अपनी प्रोफ़ाइल में एनवायरमेंट वैरिएबल लें: कंट्रोल पैनल > सिस्टम प्रॉपर्टी > बेहतर > एनवायरमेंटल वैरिएबल. वहां से, PYTHONPATH वैरिएबल बनाया जा सकता है या उसमें बदलाव किया जा सकता है. साथ ही, लोकल लाइब्रेरी कॉपी की जगह जोड़ी जा सकती है.