2009-10-20 31 views

Trả lời

6

Đối với pre-xóa, chỉ cần xóa nó với distutils.dir_util.remove_tree trước khi gọi thiết lập.

Để xóa sau, tôi cho rằng bạn chỉ muốn xóa sau khi đã chọn các lệnh được chọn. Phân lớp lệnh tương ứng, ghi đè lên phương thức chạy của nó (để gọi remove_tree sau khi gọi chạy cơ sở), và truyền lệnh mới vào từ điển cmdclass của thiết lập.

73

this trả lời không? IIRC, bạn sẽ cần phải sử dụng --all cờ để thoát khỏi nội dung bên ngoài build/lib:

python setup.py clean --all 
+0

Dường như không phải tất cả các tập lệnh 'setup.py' đều hỗ trợ' clean'. Ví dụ: NumPy – kevinarpe

3

Dưới đây là một câu trả lời mà kết hợp các phương pháp tiếp cận theo chương trình của Martin câu trả lời với các chức năng của câu trả lời của Matt (một clean rằng sẽ chăm sóc của tất cả các lĩnh vực xây dựng có thể):

from distutils.core import setup 
from distutils.command.clean import clean 
from distutils.command.install import install 

class MyInstall(install): 

    # Calls the default run command, then deletes the build area 
    # (equivalent to "setup clean --all"). 
    def run(self): 
     install.run(self) 
     c = clean(self.distribution) 
     c.all = True 
     c.finalize_options() 
     c.run() 

if __name__ == '__main__': 

    setup(
     name="myname", 
     ... 
     cmdclass={'install': MyInstall} 
    ) 
2

này xóa xây dựng thư mục trước khi cài đặt

python setup.py clean --all install 

Tuy nhiên, theo yêu cầu của bạn: Điều này sẽ làm điều đó trước đây, và sau

python setup.py clean --all install clean --all 
Các vấn đề liên quan