我如何才能让我的setup.py预删除和后删除构建目录?

有帮助吗?

解决方案

有关预缺失,只是用distutils.dir_util.remove_tree呼叫建立之前将其删除。

有关后删除,我假设你只希望发布,删除选定的命令后。子类的相应命令,(调用基运行之后调用remove_tree)覆盖其运行方法,并传递新的命令到设置的cmdclass字典。

其他提示

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

python setup.py clean --all

此清除构建目录之前安装

python setup.py clean --all install

不过,根据您的要求:这会前做,之后

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

下面是一个答案,结合了马丁的回答与马特的答案(一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