2009-12-11 40 views
6

Tôi đang đóng gói mô-đun Python và tôi muốn người dùng có thể tạo mô-đun với một số tùy chọn tùy chỉnh. Cụ thể, gói sẽ thực hiện thêm một số phép thuật nếu bạn cung cấp nó với một số tệp thực thi nhất định mà nó có thể sử dụng.Cấu hình tùy chỉnh thiết lập Python

Lý tưởng nhất, người dùng sẽ chạy setup.py install hoặc setup.py install --magic-doer=/path/to/executable. Nếu họ sử dụng tùy chọn thứ hai, tôi sẽ đặt biến ở đâu đó trong mã và chuyển từ đó.

Điều này có thể thực hiện với Python setuptools không? Nếu vậy, làm thế nào để làm điều đó?

Trả lời

6

Dường như bạn có thể ... đọc this.

Extract từ bài viết:

Commands là lớp đơn giản mà bắt nguồn từ setuptools.Command, và xác định một số yếu tố tối thiểu, đó là:

description: describe the command 
user_options: a list of options 
initialize_options(): called at startup 
finalize_options(): called at the end 
run(): called to run the command 

Các setuptools doc vẫn là trống về phân lớp Command, nhưng một lớp học tối thiểu sẽ như sau:

class MyCommand(Command): 
    """setuptools Command""" 
    description = "run my command" 
    user_options = tuple() 
    def initialize_options(self): 
     """init options""" 
     pass 

    def finalize_options(self): 
     """finalize options""" 
     pass 

    def run(self): 
     """runner""" 
     XXX DO THE JOB HERE 

Lớp sau đó có thể móc như một lệnh, sử dụng một điểm vào trong tập tin setup.py của nó:

setup(
    # ... 
    entry_points = { 
    "distutils.commands": [ 
    "my_command = mypackage.some_module:MyCommand"]} 
Các vấn đề liên quan