清理setup.py中的构建目录

时间:2009-10-20 14:01:16

标签: python build distutils

如何让setup.py预先删除并删除构建目录?

4 个答案:

答案 0 :(得分:95)

this会回答吗? IIRC,你需要使用--all标志来摆脱build/lib之外的东西:

python setup.py clean --all

答案 1 :(得分:10)

对于预删除,只需在调用setup之前使用distutils.dir_util.remove_tree将其删除。

对于删除后,我假设您只想在选定的命令后进行删除。子类化相应的命令,覆盖其run方法(在调用基本运行后调用remove_tree),并将新命令传递给cmdclass设置字典。

答案 2 :(得分:7)

这将在安装之前清除构建目录

using StatusUpdateAsyncCallback = 
      System.Func<Request, Response, byte[], string, string, System.Threading.Tasks.Task>;

但是根据你的要求:这将在之前和

之后完成
python setup.py clean --all install

答案 3 :(得分:6)

这是一个答案,将Martin的答案的编程方法与Matt的答案功能结合起来(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}
    )