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

Jeffrey Scudder, Google Veri API'leri Ekibi
Ağustos 2007

Giriş

Bu nedenle, çok sayıda Google Veri hizmetinden birini kullanarak uygulama yazmak için Google Veri Python istemci kitaplığını kullanmaya karar verdiniz. Mükemmel seçim! Bu kısa eğiticiyle amacım, uygulamanızı geliştirmek için istemci kitaplığını hemen kullanmaya başlamanızı sağlamaktır.

Hemen işe koyulmak ve uygulamanızı hemen oluşturmaya başlamak istersiniz. Ancak ilk olarak geliştirme ortamınızı yapılandırmanız ve istemci kitaplığındaki modülleri çalıştırmak için ihtiyacınız olacak araçları ayarlamanız gerekebilir. Aşağıdaki adımları uygulayarak kodu hemen çalıştırabilirsiniz.

Python'u Yükleme

Python istemci kitaplığıyla geliştirme yapacaksanız Python 2.2 veya sonraki bir sürüme sahip olmanız gerekir. Birçok işletim sisteminde yüklü bir Python sürümü bulunur. Bu nedenle, yükleme adımını atlayabilirsiniz. Hangi Python sürümünü kullandığınızı 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 durum aşağıdaki gibi bir şeyle sonuçlanır:

Python 2.4.3

Sürüm 2.2 veya sonraki bir sürümü görürseniz bağımlılıkları yüklemeye başlayabilirsiniz. Aksi takdirde, işletim sisteminiz için yükleme/yeni sürüme geçme talimatlarını bulmak üzere aşağıya bakın.

Python'u Windows'a yükleme

Windows'da seçebileceğiniz çok sayıda Python 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 komut istemini açın ve python -V komutunu çalıştırın.

Mac OS X'te Python yükleme

python.org'daki indirme listesinde Mac kullanıcıları için .dmg yükleyicileri bulunur. Bunlardan birini yükleme adımları aşağıda verilmiştir:

  1. http://www.python.org/download/mac/ adresine gidin
  2. Bu sayfadan yükleyiciyi Mac OS X'in uygun sürümüne indirin. Not: Mac OS X 10.3.8 ve önceki sürümleri için Python yükleme sayfası, Mac OS X'in 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 eklemek için yeni disk görüntüsü dosyasını (ör. python-2.5-macosx.dmg) çift tıklayın. Safari çalıştırıyorsanız bu işlem sizin için zaten yapılmıştır.
  4. Eklenen resmi 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. Varsayılan ayarlar burada da geçerlidir.
  6. Terminal.app'i (/Applications/Utilities içinde) açıp python -V komutunu çalıştırarak yüklemeyi doğrulayın. Yükleme sürümü görünmelidir.

Python'u Linux'a yükleme

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

  1. Kaynak tarball dosyasını Python indirme sayfasından indirin.
  2. Paketi indirdikten sonra komut satırını kullanarak paketi açın. Aşağıdakileri kullanabilirsiniz:
    tar zxvf Python-2.<Your version>.tgz
  3. Ardından, Python yorumcusunun kaynak kodunu derleyip yüklemeniz gerekir. Sıkıştırılmış dizinde bir ./configure dosyası oluşturup oluşturma dosyası oluşturun.
  4. Ardından make ç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 yalnızca ana dizininizden Python kullanmak istiyorsanız burada durabilirsiniz. Bu dizinden Python'u çalıştırabileceğiniz için PATH ortam değişkeninize ekleyebilirsiniz.
  5. Python'un /usr/bin/ dilinde yüklenmesini tercih ediyorum. Çoğu Python komut dosyası çevirmeni arar. Kök erişiminiz varsa kök olarak make install çalıştırın. Bu işlem, Python'u varsayılan konuma yükler ve makinenizdeki herkes tarafından kullanılabilir.
  6. Bir terminal açıp python -V çalıştırarak yüklemenizin beklendiği gibi çalışıp çalışmadığını kontrol edin.

Bağımlıları Yükleme

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

ElementTree'in sisteminizde zaten bulunup bulunmadığını görmek için aşağıdakileri yapın:

  1. Python çevirmeni çalıştırın. Bunu genellikle komut satırında python çalıştırarak yürütüyorum.
  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ğıdaki bilgileri girin:
    from xml.etree import ElementTree
    Eski sürümler için:
    from elementtree import ElementTree
  3. İçe aktarma başarısız olursa bu bölümü okumaya devam etmeniz gerekir. Çalışıyorsa Google Veri kitaplığını yükleme bölümüne atlayabilirsiniz.
  4. İşletim sisteminize uygun bir sürüm indirin. Örneğin, Windows kullanıyorsanız Elementtree-1.2.6-20050316.win32.exe'yi indirin. Diğer işletim sistemlerinde, 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 paketi açın, ardından ./setup.py install'yi çalıştırarak yükleyin.

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

Tamamen yüklenmesini önleyen bir seçenek daha vardır. İndirmeyi açtıktan sonra elementtree adlı bir dizin görürsünüz. Bu dizin, içe aktarmanız gereken modülleri içerir. Python'un içinden içe aktarma yöntemini çağırdığınızda, modül birçok yerde istenen ada sahip bir modülü arar. İlk olarak mevcut dizinde yer alır. Dolayısıyla, kodunuzu her zaman tek bir dizinden çalıştırıyorsanız elementtree dizinini ekleyebilirsiniz. Python, PYTHONPATH ortam değişkeninizde listelenen dizinlere de bakar. PYTHONPATH düzenlemeyle ilgili talimatlar için bu makalenin sonundaki Ek bölümüne bakın. elementtree için ./setup.py install kullanmanızı öneririz.

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

Henüz yapmadıysanız Google Data Python kitaplığını indirin. En son sürümü Python projesinin indirmeler sayfasında bulabilirsiniz.

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

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

  • Tüm kullanıcıların erişebileceği paketleri yükleyebiliyorsanız ./setup.py install paketini paketlenmemiş arşivin ana dizininde çalıştırabilirsiniz.
  • Bu modülleri ana dizininizde kullanmak üzere yüklemek isterseniz ./setup.py install --home=<ana dizininiz> çalıştırabilirsiniz.
  • Bazı durumlarda, modüllerin tamamını yüklemekten kaçınmanız gerekir. Bunu yapmak için PYTHONPATH ortam değişkeninizi, Google Data Python istemci kitaplığının gdata ve atom dizinlerini içeren bir dizin içerecek şekilde değiştirin. PYTHONPATH cihazınızı değiştirme talimatları için bu makalenin sonundaki Ek bölümüne bakın.

  • Bahseteceğim bir başka seçenek de gdata ve atom dizinlerini src dizininden python işlemini yürüttüğünüz anda bulunduğunuz dizine kopyalamak. Bir içe aktarma yaptığınızda Python mevcut dizine bakar, ancak hızlı ve basit bir şey oluşturmuyorsanız bu yöntemi önermiyoruz.

Google Veri kitaplığını yükledikten sonra, bir test sürüşü için kitaplığı kullanmaya hazırsınız demektir.

Testleri ve Örnekleri Çalıştırma

Google Data Python istemci kitaplığı dağıtımlarında, kitaplığın geliştirilmesinde kullanılan bazı test durumları yer alır. Ayrıca, bağımlılarınızın ve kitaplık kurulumunuzun çalıştığından emin olmak için hızlı bir kontrol görevi de görebilirler. Kitaplık kopyanızı paketinden çıkardığınız en üst düzey dizinde koşmayı deneyin:

./tests/run_data_tests.py

Komut dosyası doğru çalışıyorsa komut satırında aşağıdaki gibi 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 büyük olasılıkla ortamınızı doğru şekilde ayarlamışsınızdır. Tebrikler!

Artık daha ilgi çekici bir video yayınlayabilirsiniz. Dağıtım, uygulamanızı yazmaya başlamanız için başlangıç noktası sağlayabilecek bir kod içeren samples dizini içerir. Basit bir etkileşimli örneği denemek isterseniz ./samples/docs/docs_example.py komutunu çalıştırmayı deneyin. Google Documents List API örneğinde, Google hesabınızın e-posta adresi ve şifresi sorulur. Google Dokümanlar'da dokümanlarınız veya e-tablolarınız varsa bunları seçtiğiniz işlem için 1 girerek 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 örneğe göz atın. Özelliklerin tümü olmasa da çoğu örnek kodda gösterilmektedir. Bu nedenle, API ile neler yapabileceğinizi net bir şekilde görebilmek için, birlikte çalışmayı planladığınız hizmetle ilgili belgelere göz atmak isteyebilirsiniz.

"Hello World" Örneği Yazma

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

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

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

Sonuç

Google Data Python istemci kitaplığını yükleyip test ettiğinize göre, aşağıdakileri kullanarak bir sonraki mükemmel uygulamayı yazmaya hazırsınız:

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

Kitaplık için yeni bir özellik düşünüyorsanız (veya rastlantısal bir hata bulursanız) lütfen tartışma grubuna girin. Geri bildirimleriniz bizim için her zaman önemlidir.

Keyifli kodlamalar :-)

Ek: PÎONPATH yolu değiştiriliyor

Python'da bir paketi veya modülü içe aktardığınızda çevirmen, dosyayı PYTHONPATH ortam değişkeninde listelenen tüm dizinler dahil olmak üzere bir dizi konumda arar. Genellikle PYTHONPATH kullandığım modülü, kullandığım bir kitaplığın kaynak kodunu kopyaladığım modüllere yönlendirecek şekilde değiştiriyorum. Python, değiştirilmiş kaynak kodunu içeren dizinden doğrudan modül yükleyeceğinden bu, bir modülün her değişmesinde yüklenme ihtiyacını ortadan kaldırır.

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

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

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

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

Windows XP'de profilinizin Ortam Değişkenlerini ayarlayın: 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.