Как я могу сделать мой setup.py
pre-delete и post-delete каталог сборки?
Очистка каталога сборки в файле setup.py
Ответ 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