Google Data Python Kitaplığı'nı Kullanmaya Başlama

Jeffrey Scudder, Google Data APIs Team
Ağustos 2007

Giriş

Bu nedenle, birçok Google Veri hizmetinden birini kullanarak uygulama yazmak için Google Veri Python istemci kitaplığını kullanmaya karar verdiniz. Mükemmel bir seçim! Bu kısa eğitimin amacı, uygulamanızı geliştirmek için istemci kitaplığını kullanmaya hızlı bir şekilde başlamanıza yardımcı olmaktır.

Muhtemelen hemen uygulamayı oluşturmaya başlamak istiyorsunuzdur. Ancak öncelikle geliştirme ortamınızı yapılandırmanız ve istemci kitaplığında yer alan modülleri çalıştırmak için ihtiyacınız olan araçları ayarlamanız gerekebilir. Aşağıdaki adımları uygulayarak kısa süre içinde kod çalıştırmaya başlayabilirsiniz.

Python'ı yükleme

Python istemci kitaplığıyla geliştirme yapacaksanız Python 2.2 veya sonraki bir sürümünün çalışır durumda olması gerekir. Birçok işletim sisteminde Python'ın bir sürümü bulunur. Bu nedenle, yükleme adımını atlayabilirsiniz. Hangi Python sürümüne sahip olduğunuzu görmek için bir komut satırı terminalinde python -V komutunu çalıştırın. (Not: V büyük harfle yazılır.) Bu işlem sonucunda aşağıdakine benzer bir sonuç elde edilir:

Python 2.4.3

2.2 veya daha yeni bir sürüm görüyorsanız bağımlılıkları yüklemeye başlayabilirsiniz. Aksi takdirde, işletim sisteminize yönelik yükleme/yükseltme talimatlarını aşağıda bulabilirsiniz.

Windows'a Python yükleme

Windows'da Python'ın seçebileceğiniz birkaç uygulaması vardır ancak bu kılavuzda python.org adresinde bulunan.msi yükleyiciyi kullanacağım.

  1. Python indirme sayfasından yükleyiciyi indirerek başlayın.
  2. Yükleyiciyi çalıştırın. Tüm varsayılan ayarları kabul edebilirsiniz.
  3. Yüklemenizin beklendiği gibi çalışıp çalışmadığını görmek için bir komut istemi açın ve python -V komutunu çalıştırın.

Mac OS X'e Python yükleme

python.org adresindeki indirme listesinde Mac kullanıcıları için .dmg yükleyiciler bulunur. Bunlardan birini yüklemek için aşağıdaki adımları uygulayın:

  1. http://www.python.org/download/mac/ adresine gidin.
  2. Bu sayfadan, Mac OS X'in uygun sürümünün yükleyicisini indirin. Not: Mac OS X 10.3.8 ve önceki sürümler için Python yükleme sayfası, Mac OS X'in daha yeni sürümlerinden farklıdır. OS X sürümünüzü bulmak için ekranınızın sol üst köşesindeki Apple menüsünden Bu Mac Hakkında'yı seçin.
  3. İndirme işlemi tamamlandıktan sonra yeni disk görüntüsü dosyasını (ör. python-2.5-macosx.dmg) çift tıklayarak bağlayın. Safari kullanıyorsanız bu işlem sizin için yapılmıştır.
  4. Bağlı görüntüyü açın ve içindeki yükleyici paketini çift tıklayın.
  5. Yükleme talimatlarını uygulayın ve size sunulan bilgileri ve lisans sözleşmelerini okuyun. Burada da varsayılan ayarlar sorunsuz çalışır.
  6. Terminal.app'i (/Applications/Utilities içinde) açıp python -V komutunu çalıştırarak yüklemeyi doğrulayın. Yüklemenin sürümü görünür.

Linux'a Python yükleme

Linux ve diğer *nix tarzı işletim sistemlerine yüklemek için kaynak kodunu indirip derlemeyi tercih ederim. Ancak Python'u yüklemek için en sevdiğiniz paket yöneticisini kullanabilirsiniz. (Örneğin, Ubuntu'da bu işlem, komut satırında sudo apt-get install python komutunu çalıştırmak kadar kolay olabilir.) Kaynaktan yüklemek için şu adımları uygulayın:

  1. Kaynak tarball'ı Python indirme sayfasından indirin.
  2. Paketi indirdikten sonra komut satırını kullanarak paketi açın. Aşağıdaki
    tar zxvf Python-2.<Your version>.tgz
  3. Ardından, Python yorumlayıcısının kaynak kodunu derleyip yüklemeniz gerekir. Açılan dizinde, makefile oluşturmak için ./configure komutunu çalıştırın.
  4. Ardından make komutunu çalıştırın. Bu işlem, yerel dizinde çalışan bir Python yürütülebilir dosyası oluşturur. Kök izniniz yoksa veya Python'u yalnızca ana dizininizden kullanmak istiyorsanız bu noktada durabilirsiniz. Bu dizinden Python'ı çalıştırabilirsiniz. Bu nedenle, dizini PATH ortam değişkeninize eklemek isteyebilirsiniz.
  5. Python'ın, çoğu Python komut dosyasının yorumlayıcıyı aradığı /usr/bin/ konumuna yüklenmesini tercih ederim. Kök erişiminiz varsa make install komutunu kök olarak çalıştırın. Bu işlem, Python'ı varsayılan konuma yükler ve makinenizdeki herkes tarafından kullanılabilir.
  6. Bir terminal açıp python -V komutunu çalıştırarak yüklemenizin beklendiği gibi çalışıp çalışmadığını kontrol edin.

Bağımlılıkları Yükleme

Şu anda tek harici bağımlılık, ElementTree adlı bir XML kitaplığıdır. Python 2.5 veya sonraki bir sürümünü kullanıyorsanız Python paketiyle birlikte geldiği için ElementTree'yi yüklemeniz gerekmez.

ElementTree'nin sisteminizde mevcut olup olmadığını görmek için aşağıdakileri yapın:

  1. Python yorumlayıcısını çalıştırın. Bunu genellikle komut satırında python komutunu çalıştırarak yaparım.
  2. ElementTree modülünü içe aktarmayı deneyin. Python 2.5 veya sonraki bir sürümü kullanıyorsanız yorumlayıcıya aşağıdakileri girin:
    from xml.etree import ElementTree
    Eski sürümler için şunu girin:
    from elementtree import ElementTree
  3. İçe aktarma işlemi başarısız olursa bu bölümü okumaya devam etmeniz gerekir. Çalışırsa Google Data kitaplığını yükleme bölümüne geçebilirsiniz.
  4. İşletim sisteminize uygun bir sürümü indirin. Örneğin, Windows kullanıyorsanız elementtree-1.2.6-20050316.win32.exe dosyasını indirin. Diğer işletim sistemleri için sıkıştırılmış bir sürüm indirmenizi öneririz.
  5. Kitaplığın .tar.gz veya .zip sürümünü kullanıyorsanız önce kitaplığı açın, ardından ./setup.py install komutunu çalıştırarak yükleyin.

./setup.py install komutunu çalıştırmak, kitaplığı derlemeye ve Python modülleriniz için sistem dizinine yerleştirmeye çalışır. Kök erişiminiz yoksa ./setup.py install --home=~ komutunu çalıştırarak modülleri ana dizininize veya alternatif bir konuma yükleyebilirsiniz. Bu işlem, kodu ana dizininize yerleştirir.

Yüklemeyi tamamen önleyen başka bir seçenek de vardır. İndirilen dosyayı açtığınızda elementtree adlı bir dizin görürsünüz. Bu dizin, içe aktarmanız gereken modülleri içerir. Python'da içe aktarma işlemi yaptığınızda, istenen ada sahip bir modül birkaç yerde aranır. İlk olarak geçerli dizine bakılır. Bu nedenle, kodunuzu her zaman tek bir dizinden çalıştırıyorsanız elementtree dizinini oraya koymanız yeterlidir. Python, PYTHONPATH ortam değişkeninizde listelenen dizinlere de bakar. PYTHONPATH düzenleme talimatları için bu makalenin sonundaki Eki inceleyin. elementtree için ./setup.py install kullanmanızı öneririm.

Google Veri Kitaplığı'nı yükleme

Henüz yapmadıysanız Google Data Python kitaplığını indirin. Python projesinin indirme sayfasında en son sürümü bulun.

Kitaplığı indirdikten sonra, seçtiğiniz indirme türüne bağlı olarak unzip veya tar zxvf kullanarak kitaplığı açın.

Artık kitaplık modüllerini Python'a aktarılabilmeleri için yüklemeye hazırsınız. Bunu birkaç şekilde yapabilirsiniz:

  • Tüm kullanıcıların erişebileceği paketleri yükleme olanağınız varsa ./setup.py install komutunu, açılmamış arşivin ana dizininden çalıştırabilirsiniz.
  • Bu modülleri ana dizininizde kullanmak üzere yüklemek istiyorsanız ./setup.py install --home=<your home directory> komutunu çalıştırabilirsiniz.
  • Bazı durumlarda modüllerin tamamen yüklenmesini önlemek isteyebilirsiniz. Bunu yapmak için PYTHONPATH ortam değişkeninizi, Google Data Python istemci kitaplığı için gdata ve atom dizinlerini içeren bir dizini içerecek şekilde değiştirin. PYTHONPATH dosyanızı değiştirme talimatları için bu makalenin sonundaki Ek bölümüne bakın.

  • Son olarak, gdata ve atom dizinlerini src dizininden python komutunu çalıştırdığınız sırada bulunduğunuz dizine kopyalamaktan bahsedebiliriz. Python, içe aktarma işlemi yaptığınızda geçerli dizine bakar ancak hızlı ve basit bir şey oluşturmadığınız sürece bu yöntemi önermem.

Google Data kitaplığını yükledikten sonra kitaplığı test etmeye hazırsınız.

Testleri ve örnekleri çalıştırma

Google Data Python istemci kitaplığı dağıtımları, kitaplığın geliştirilmesinde kullanılan bazı test durumlarını içerir. Ayrıca, bağımlılıklarınızın ve kitaplık yüklemenizin çalıştığından emin olmak için hızlı bir kontrol olarak da kullanılabilirler. Kitaplığın kopyasını açtığınız en üst düzey dizinden şu komutu çalıştırmayı deneyin:

./tests/run_data_tests.py

Bu komut dosyası doğru şekilde çalışırsa komut satırında şu şekilde bir çıkış görürsünüz:

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

...

Testler yürütülürken herhangi bir hata görmediyseniz ortamınızı doğru şekilde ayarlamışsınızdır. Tebrikler!

Artık daha ilginç bir şeyler çalıştırmaya başlayabilirsiniz. Dağıtımda, uygulamanızı yazmaya başlamak için kullanabileceğiniz kodu içeren bir samples dizini bulunur. Basit bir etkileşimli örnek denemek isterseniz ./samples/docs/docs_example.py komutunu çalıştırmayı deneyin. Google Doküman Listesi API örneği, Google Hesabınızın e-posta adresini ve şifresini girmenizi ister. Google Dokümanlar'da dokümanlarınız veya e-tablolarınız varsa seçtiğiniz işlem için 1 girerek bunları listeleyebilirsiniz. (Belgeniz veya e-tablonuz yoksa 404 hatası alırsınız.)

İlginizi çeken belirli bir Google Veri Hizmeti varsa kitaplığı nasıl kullanabileceğinizle ilgili temel bir fikir edinmek için bu hizmetin örneğine göz atın. Özelliklerin çoğu (ancak tamamı değil) örnek kodda gösterilir. Bu nedenle, API ile neler yapabileceğiniz konusunda net bir fikir edinmek için çalışmayı planladığınız hizmetin dokümanlarına göz atmak isteyebilirsiniz.

"Hello World" örneği yazma

Basit bir örnekle başlayalım. Google Dokümanlar hesabınızdaki tüm dokümanların listesini yazdırmak için kısa bir program:

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

Google Data Python istemci kitaplığının nasıl çalıştığını görmek için yukarıdaki kod snippet'ini bir dosya olarak kaydedip çalıştırın veya kodu Python yorumlayıcısına yapıştırın.

Sonuç

Google Data Python istemci kitaplığını yükleyip test ettiğinize göre artık aşağıdaki araçları kullanarak bir sonraki harika uygulamayı yazmaya başlayabilirsiniz:

Uygulamanızı geliştirmeye devam ederken bir sorunla karşılaşabilirsiniz. Evetse lütfen aşağıdaki kaynak listesine göz atın:

Kitaplık için harika bir yeni özellik düşündüyseniz (veya tesadüfen bir hata bulduysanız) lütfen bunu tartışma grubuna girin. Geri bildirimlerinizi her zaman bekliyoruz.

Keyifli kodlamalar :-)

Ek: PYTHONPATH'ı değiştirme

Python'da bir paket veya modül içe aktardığınızda yorumlayıcı, PYTHONPATH ortam değişkeninde listelenen tüm dizinler de dahil olmak üzere bir dizi konumda dosyayı arar. Kullandığım bir kitaplığın kaynak kodunu kopyaladığım modüllere yönlendirmek için PYTHONPATH dosyamı sık sık değiştiririm. Bu, Python değiştirilmiş kaynak kodu içeren dizinden modülü doğrudan yükleyeceğinden her değiştirildiğinde modülün yüklenmesini önler.

İstemci kitaplığı kodunda değişiklik yapıyorsanız veya sisteminizde yönetici haklarınız yoksa PYTHONPATH yaklaşımını kullanmanızı öneririz. PYTHONPATH öğesini düzenleyerek gerekli modülleri istediğiniz yere yerleştirebilirsiniz.

PYTHONPATH dosyamı *nix ve Mac OS X sisteminde .bashrc kabuk yapılandırma dosyamda ayarlayarak değiştirdim. Bash kabuğunu kullanıyorsanız ~/.bashrc dosyanıza aşağıdaki satırı ekleyerek değişkeni ayarlayabilirsiniz.

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

Ardından, source ~/.bashrc komutunu çalıştırarak bu değişiklikleri mevcut kabuk oturumunuza uygulayabilirsiniz.

Windows XP için profilinizin ortam değişkenlerini getirin: Denetim Masası > Sistem Özellikleri > Gelişmiş > Ortam Değişkenleri. Buradan PYTHONPATH değişkenini oluşturabilir veya düzenleyebilir ve yerel kitaplık kopyanızın konumunu ekleyebilirsiniz.