如何让setup.py
预先删除并删除构建目录?
答案 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}
)