Вопрос

Как я мог бы сделать свой setup.py предварительное удаление и последующее удаление каталога сборки?

Это было полезно?

Решение

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

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

Другие советы

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

python setup.py clean --all

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

python setup.py clean --all install

Но в соответствии с вашими требованиями:Это будет сделано как до, так и после

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

Вот ответ, который сочетает программный подход ответа Мартина с функциональностью ответа Мэтта (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}
    )
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top