Bắt đầu sử dụng Thư viện Python cho dữ liệu của Google

Jeffrey Scudder, Nhóm API dữ liệu của Google
Tháng 8 năm 2007

Giới thiệu

Vì vậy, bạn đã quyết định sử dụng thư viện ứng dụng Google Data Python để viết ứng dụng bằng một trong nhiều dịch vụ Dữ liệu của Google. Sự lựa chọn tuyệt vời! Mục đích của tôi với hướng dẫn ngắn này là giúp bạn nhanh chóng bắt đầu sử dụng thư viện ứng dụng để phát triển ứng dụng.

Bạn nên tham gia và bắt đầu tạo ứng dụng ngay lập tức. Trước tiên, bạn có thể cần phải định cấu hình môi trường phát triển và thiết lập các công cụ cần thiết để chạy các mô-đun có trong thư viện ứng dụng. Hãy làm theo các bước bên dưới và bạn sẽ nhanh chóng chạy mã.

Cài đặt Python

Nếu đang phát triển bằng thư viện ứng dụng Python, bạn cần có phiên bản Python 2.2 trở lên. Nhiều hệ điều hành có kèm theo phiên bản Python, vì vậy, bạn có thể bỏ qua bước cài đặt. Để xem phiên bản Python của bạn, hãy chạy python -V trong một dòng lệnh của dòng lệnh. (Lưu ý: V được viết hoa.) Việc này sẽ mang lại một số lợi ích như:

Python 2.4.3

Nếu thấy phiên bản 2.2 trở lên, bạn có thể bắt đầu cài đặt các phần phụ thuộc. Nếu không, hãy xem bên dưới để tìm hướng dẫn cài đặt/nâng cấp cho hệ điều hành của bạn.

Cài đặt Python trên Windows

Có khá nhiều cách triển khai Python để chọn trong Windows, nhưng vì mục đích của hướng dẫn này, tôi sẽ sử dụng trình cài đặt .EMA có trên python.org.

  1. Bắt đầu bằng cách tải trình cài đặt xuống qua trang tải Python xuống.
  2. Chạy trình cài đặt – bạn có thể chấp nhận tất cả chế độ cài đặt mặc định
  3. Để xem quá trình cài đặt của bạn có hoạt động như mong đợi hay không, hãy mở lời nhắc lệnh và chạy python -V.

Cài đặt Python trên Mac OS X

Danh sách tải xuống trên python.org có các trình cài đặt .dmg cho người dùng máy Mac. Dưới đây là các bước để cài đặt một trong các lớp đó:

  1. Điều hướng đến http://www.python.org/download/mac/
  2. Từ trang này, hãy tải xuống trình cài đặt cho phiên bản Mac OS X thích hợp. Lưu ý: Trang cài đặt Python cho Mac OS X 10.3.8 trở xuống khác với các phiên bản Mac OS X mới hơn. Để tìm phiên bản OS X của bạn, hãy chọn About This Mac (Giới thiệu về máy Mac này) trong trình đơn Apple ở góc trên cùng bên trái màn hình.
  3. Sau khi tải xuống xong, hãy nhấp đúp vào tệp hình ảnh đĩa mới (ví dụ: python-2.5-macosx.dmg) để gắn tệp đó. Nếu bạn đang chạy Safari thì điều này đã được thực hiện cho bạn.
  4. Mở hình ảnh đã gắn và nhấp đúp vào gói trình cài đặt bên trong.
  5. Hãy làm theo hướng dẫn cài đặt rồi đọc thông tin và thoả thuận cấp phép khi chúng được trình bày cho bạn. Xin nhắc lại, chế độ cài đặt mặc định sẽ hoạt động tại đây.
  6. Xác minh việc cài đặt bằng cách mở Terminal.app (trong /Applications/Utilities) và chạy python -V. Phiên bản của bản cài đặt sẽ xuất hiện.

Cài đặt Python trên Linux

Để cài đặt trên Linux và các hệ điều hành *nix style khác, tôi muốn tải mã nguồn xuống và biên dịch mã đó. Tuy nhiên, bạn có thể sử dụng trình quản lý gói yêu thích để cài đặt Python. (Ví dụ: trên Ubuntu, việc này có thể dễ dàng như chạy sudo apt-get install python trên dòng lệnh.) Để cài đặt từ nguồn, hãy làm theo các bước sau:

  1. Tải tarball nguồn xuống từ trang tải xuống Python.
  2. Sau khi bạn tải gói xuống, hãy giải nén gói này bằng dòng lệnh. Bạn có thể sử dụng
    tar zxvf Python-2.<Your version>.tgz
    sau đây
  3. Tiếp theo, bạn sẽ cần biên dịch và cài đặt mã nguồn cho trình phiên dịch Python. Trong thư mục đã giải nén, hãy chạy ./configure để tạo một tệp makefile.
  4. Sau đó, hãy chạy make. Thao tác này sẽ tạo một tệp thực thi Python đang hoạt động trong thư mục cục bộ. Nếu không có quyền gốc hoặc chỉ muốn sử dụng Python từ thư mục gốc, bạn có thể dừng tại đây. Bạn sẽ có thể chạy Python từ thư mục này, vì vậy bạn nên thêm Python vào biến môi trường PATH.
  5. Tôi muốn cài đặt Python trong /usr/bin/, trong đó hầu hết các tập lệnh Python sẽ tìm trình phiên dịch. Nếu bạn có quyền truy cập thư mục gốc, hãy chạy make install làm thư mục gốc. Thao tác này sẽ cài đặt Python ở vị trí mặc định và mọi người trên máy của bạn đều có thể sử dụng Python.
  6. Kiểm tra xem quá trình cài đặt của bạn có hoạt động như mong đợi hay không bằng cách mở một thiết bị đầu cuối và chạy python -V.

Cài đặt phần phụ thuộc

Hiện tại, phần phụ thuộc bên ngoài duy nhất là thư viện XML có tên ElementTree. Nếu đang sử dụng Python phiên bản 2.5 trở lên, bạn sẽ không cần cài đặt ElementTree vì gói này đi kèm với gói Python.

Để xem liệu ElementTree đã có trên hệ thống của bạn hay chưa, hãy làm như sau:

  1. Chạy trình phiên dịch Python. Tôi thường làm điều này bằng cách thực thi python trên dòng lệnh.
  2. Hãy thử nhập mô-đun ElementTree. Nếu bạn đang sử dụng Python 2.5 trở lên, hãy nhập những thông tin sau vào trình phiên dịch:
    from xml.etree import ElementTree
    Đối với các phiên bản cũ, hãy nhập:
    from elementtree import ElementTree
  3. Nếu quá trình nhập không thành công, thì bạn cần tiếp tục đọc phần này. Nếu cách này có tác dụng, bạn có thể chuyển đến phần Cài đặt thư viện Google Data.
  4. Tải xuống phiên bản phù hợp với hệ điều hành của bạn. Ví dụ: nếu bạn đang dùng Windows, hãy tải elementtree-1.2.6-20050316.win32.exe xuống. Đối với các hệ điều hành khác, bạn nên tải phiên bản nén xuống.
  5. Nếu bạn đang sử dụng phiên bản .tar.gz hoặc .zip của thư viện, trước tiên hãy giải nén rồi cài đặt thư viện này bằng cách chạy ./setup.py install.

Việc chạy ./setup.py install sẽ cố gắng biên dịch thư viện và đặt thư viện này vào thư mục hệ thống cho các mô-đun Python. Nếu không có quyền truy cập thư mục gốc, bạn có thể cài đặt các mô-đun trong thư mục gốc hoặc một vị trí thay thế bằng cách chạy ./setup.py install --home=~. Thao tác này sẽ đặt mã vào thư mục gốc của bạn.

Có một tuỳ chọn khác giúp tránh được việc cài đặt hoàn toàn. Sau khi giải nén tệp tải xuống, bạn sẽ thấy một thư mục có tên elementtree. Thư mục này chứa các mô-đun mà bạn sẽ cần nhập. Khi bạn gọi lệnh nhập từ trong Python, lệnh gọi này sẽ tìm kiếm một mô-đun có tên mong muốn ở một số vị trí. Vị trí đầu tiên nó nằm trong thư mục hiện tại, vì vậy, nếu luôn chạy mã từ một thư mục, bạn chỉ cần đặt thư mục elementtree vào đó. Python cũng sẽ xem xét các thư mục được liệt kê trong biến môi trường PYTHONPATH của bạn. Để được hướng dẫn cách chỉnh sửa PYTHONPATH, hãy xem Phụ lục ở cuối bài viết này. Tôi khuyên bạn nên sử dụng ./setup.py install cho elementtree.

Cài đặt Thư viện dữ liệu của Google

Tải thư viện Google Data Python xuống nếu bạn chưa tải xuống. Hãy tìm phiên bản mới nhất trên trang tải xuống của dự án Python.

Sau khi tải thư viện xuống, hãy giải nén thư viện bằng unzip hoặc tar zxvf tuỳ thuộc vào loại tệp tải xuống mà bạn đã chọn.

Bây giờ, bạn đã sẵn sàng cài đặt các mô-đun thư viện để có thể nhập chúng vào Python. Bạn có thể thực hiện việc này bằng một số cách như sau:

  • Nếu có thể cài đặt các gói để tất cả người dùng truy cập, bạn có thể chạy ./setup.py install trong thư mục chính của tệp lưu trữ đã giải nén.
  • Nếu muốn cài đặt các mô-đun này sử dụng trong thư mục gốc, bạn có thể chạy ./setup.py install --home=<thư mục gốc của bạn>.
  • Trong một số trường hợp, bạn nên tránh cài đặt hoàn toàn các mô-đun. Để làm việc đó, hãy sửa đổi biến môi trường PYTHONPATH để thêm một thư mục chứa các thư mục gdataatom cho thư viện ứng dụng Google Data Python. Để biết hướng dẫn về cách sửa đổi PYTHONPATH, hãy xem Phụ lục ở cuối bài viết này.

  • Một tuỳ chọn cuối cùng tôi sẽ đề cập là sao chép các thư mục gdataatom từ thư mục src vào bất kỳ thư mục nào đang ở khi bạn thực thi python. Python sẽ tìm trong thư mục hiện tại khi bạn nhập, nhưng bạn không nên sử dụng phương thức này trừ khi bạn tạo một nội dung nhanh chóng và đơn giản.

Sau khi cài đặt thư viện Dữ liệu của Google, bạn đã sẵn sàng sử dụng thư viện này để lái thử.

Chạy thử nghiệm và mẫu

Bản phân phối thư viện ứng dụng Google Data Python bao gồm một số trường hợp kiểm thử được dùng trong quá trình phát triển thư viện. Các phần phụ thuộc này cũng có thể đóng vai trò như một quy trình kiểm tra nhanh để đảm bảo rằng các phần phụ thuộc và cài đặt thư viện đang hoạt động. Trong thư mục cấp cao nhất nơi bạn đã giải nén bản sao thư viện, hãy thử chạy:

./tests/run_data_tests.py

Nếu tập lệnh này chạy đúng cách, bạn sẽ thấy kết quả trên dòng lệnh như sau:

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

...

Nếu bạn không thấy lỗi nào khi kiểm thử, thì có thể bạn đã thiết lập môi trường đúng cách. Xin chúc mừng!

Giờ bạn có thể bắt đầu chạy nội dung nào đó thú vị hơn. Bản phân phối chứa một thư mục samples chứa mã có thể cung cấp điểm xuất phát để viết ứng dụng. Nếu bạn muốn dùng thử một mẫu tương tác đơn giản, hãy thử chạy ./samples/docs/docs_example.py. Mẫu API Danh sách tài liệu của Google sẽ nhắc bạn nhập địa chỉ email và mật khẩu cho Tài khoản Google của bạn. Nếu có tài liệu hoặc bảng tính trong Google Tài liệu, bạn có thể liệt kê các tài liệu hoặc bảng tính đó bằng cách nhập 1 cho thao tác đã chọn. (Nếu không có tài liệu hoặc bảng tính, bạn sẽ gặp lỗi 404.)

Nếu có một dịch vụ Dữ liệu cụ thể của Google mà bạn quan tâm, hãy xem mẫu dịch vụ đó để có được ý tưởng cơ bản về cách bạn có thể sử dụng thư viện. Hầu hết (nhưng không phải tất cả) các tính năng đều được minh hoạ trong mã mẫu. Vì vậy, bạn nên xem tài liệu về dịch vụ mà mình dự định sử dụng để hiểu rõ những việc bạn có thể làm với API này.

Viết ví dụ "Hello World" ("Xin chào thế giới")

Hãy bắt đầu bằng một ví dụ đơn giản. Sau đây là một chương trình ngắn để in danh sách tất cả các tài liệu trong tài khoản Google Tài liệu của bạn:

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

Hãy lưu đoạn mã trên dưới dạng tệp và chạy hoặc dán mã vào trình thông dịch Python để xem thư viện ứng dụng Google Data Python trong thực tế.

Kết luận

Sau khi cài đặt và kiểm thử thư viện ứng dụng Google Data Python, bạn đã có thể bắt đầu viết ứng dụng tuyệt vời tiếp theo bằng:

Khi tiếp tục phát triển ứng dụng, bạn có thể gặp phải một sự cố. Nếu vậy, vui lòng xem danh sách tài nguyên dưới đây:

Nếu bạn tình cờ nghĩ ra một tính năng mới hữu ích cho thư viện (hoặc tình cờ tìm thấy lỗi), vui lòng nhập tính năng đó vào nhóm thảo luận. Chúng tôi luôn quan tâm đến ý kiến phản hồi của bạn!

Chúc bạn lập trình vui vẻ :-)

Phụ lục: Sửa đổi PYTHONPATH

Khi bạn nhập một gói hoặc mô-đun trong Python, trình phiên dịch sẽ tìm tệp đó trong một loạt vị trí, bao gồm tất cả các thư mục được liệt kê trong biến môi trường PYTHONPATH. Tôi thường sửa đổi PYTHONPATH để trỏ đến các mô-đun mà tôi đã sao chép mã nguồn cho thư viện mà tôi đang sử dụng. Việc này ngăn chặn phải cài đặt mô-đun mỗi lần mô-đun được sửa đổi vì Python sẽ tải trực tiếp mô-đun từ thư mục chứa mã nguồn đã sửa đổi.

Bạn nên sử dụng PYTHONPATH nếu bạn đang thay đổi mã thư viện ứng dụng hoặc nếu bạn không có quyền quản trị trên hệ thống. Bằng cách chỉnh sửa PYTHONPATH, bạn có thể đặt các mô-đun bắt buộc ở bất cứ đâu mà bạn muốn.

Tôi đã sửa đổi PYTHONPATH trên hệ thống *nix và Mac OS X bằng cách đặt giá trị này trong tệp cấu hình shell .bashrc. Nếu đang sử dụng shell bash, bạn có thể đặt biến bằng cách thêm dòng sau vào tệp ~/.bashrc.

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

Sau đó, bạn có thể áp dụng các thay đổi này cho phiên shell hiện tại bằng cách thực thi source ~/.bashrc.

Đối với Windows XP, hãy lấy các Biến môi trường cho hồ sơ của bạn: Control Panel (Bảng điều khiển) > System Properties (Thuộc tính hệ thống) > Advanced (Nâng cao) > Environment Variables (Biến môi trường). Từ đó, bạn có thể tạo hoặc chỉnh sửa biến PYTHONPATH và thêm vị trí của bản sao thư viện cục bộ.