Làm cách nào để tôi có thể tạo setup.py
trước khi xóa và sau khi xóa thư mục xây dựng của mình?Làm sạch thư mục xây dựng trong setup.py
Trả lời
Đố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.
Có 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
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}
)
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
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