题
我如何才能让我的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}
)
不隶属于 StackOverflow