Thứ Ba, 15 tháng 4, 2014

DISTUTILS - Tạo Package từ python module

Giới thiệu về DISTUTILS


Tài liệu này hướng dẫn bạn sử dụng Dstutils để distribute python module của bạn, rất cần thiết với các deverloper/ distributor: Nếu bạn tìm kiếm thông tin trong việc install một python module, bạn nên tham khảo về ' install python modules'
https://docs.python.org/2/install/index.html#install-index

Các khái niệm và thuật ngữ:

Là một developer, những điều bạn phải nắm được:
+ Viết một setup script
+ Viết một filg config
+ Tạo ra một source distribution( tạm hiểu là một nguồn tài nguyên có thể deploy và phát triển được)
+ Tạo ra một hoặc nhiều built distribution( đại loại là những distribution có khả năng xây dựng nên nhiều chương trình khác)

Tất cả các task trên đều được cover trong tài liệu này.

1.2. A Simple Example

The setup script là khá đơn giản, đc viết bằng python, không giới hạn những gì bạn có thể làm với nó. Tuy nhiên, bạn nên cẩn thận khi cung cấp nhứng thông tin quan trọng trong setup script. Setup script có thể chạy nhiều lần trong quá trình xây dựng và install module của bạn.

Nếu bạn muốn distribute với module tên là foo, được chứa trong file foo.py. Sau đó bạn thiết lập một script đơn giản như thế này:
from distutils.core import setup
setup(name='foo',
version='1.0',
py_modules=['foo'],
)
Một vài điểm chú ý:
+ Hầu hết thông tin mà bạn cung cấp tới Distutil đều được nhập vào như là keyword arguments tới setup() function
+ Những keyword argument chia thành hai loaị: package metadata( tên, version..) và thông tin về package( trong trường hợp này là list các module)
+ Module được xác định bằng tên module, không phải là tên file( làm tương tự với các gói và phần mở rộng).
+ Bạn nên cung cấp thêm một số thông tin như tên, email, url....cho project này.

Để tạo ra một source distribute cho module này, bạn cần tạo một setup script, setup.py, và chạy lệnh:

python setup.py sdist

sdist sẽ tạo ra một file lưu trữ chứa setup script của bạn, và module foo.py của bạn. File lưu trữ này sẽ đucợ đặt tên là foo-1.0.tar.gz hoặc .zip và sẽ giải nén nó tới thư mục foo-1.0.
thanhnt@Thanhnt:~/pycode/ex_distutils/dist$ ls
foo-0.0.0.tar.gz  foo-1.0.tar.gz
Nếu một người muốn install module foo của bạn, việc phải làm là dowload file đó về , giải nén , tới thư mục foo-1.0 và chạy:

python setup.py install

việc này sẽ coppy foo.py tới thư mục thích hợp cho sự cài đặt của họ.
Ví dụ trên đã nêu nên một số vấn đề cơ bản của Distutils. Đầu tiên, cả developer và installer đều có một giao diện người dùng cơ bản như nhau. Chỉ khác command mà họ thực hiện:
 sdist cho deverloper
 install cho installer

Nếu bạn muốn tạo nên sự dễ dàng cho user của bạn, bạn có thể tạo nên nhiều buil distribute
Một số chú ý nhỏ:
python setup.py bdist_wininst
với bdist_wininst, bạn đã tạo ra file foo-1.0.win32.exe file trong thư mục hiện tại
python setup.py bdist_rpm
=> tạo file foo-1.0.noarch.rpm
bạn muốn biết thêm thông tin:
python setup.py bdist --help-formats

Không có nhận xét nào:

Đăng nhận xét