Подтвердить что ты не робот

Очистка каталога сборки в файле setup.py

Как я могу сделать мой setup.py pre-delete и post-delete каталог сборки?

4b9b3361

Ответ 1

Для предварительного удаления просто удалите его с помощью distutils.dir_util.remove_tree перед вызовом настройки.

Для post-delete я предполагаю, что вы хотите отправлять сообщения только после выбранных команд. Подкласс соответствующей команды, переопределите его метод запуска (для вызова remove_tree после вызова базового прогона) и передайте новую команду в словарь cmdclass установки.

Ответ 2

Помогает ли это ответить? IIRC, вам нужно использовать флаг --all, чтобы избавиться от материала вне build/lib:

python setup.py clean --all

Ответ 3

Вот ответ, который сочетает программный подход Мартина с функциональностью ответа Мэтта (a clean, который заботится обо всех возможных областях сборки):

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}
    )

Ответ 4

Это очищает каталог сборки до установки

python setup.py clean --all install

Но в соответствии с вашими требованиями: это сделает это раньше, а после

python setup.py clean --all install clean --all