“setup.py clean”究竟做了什么?

时间:2013-07-23 07:40:19

标签: python python-2.7 setuptools setup.py

从版本0.9.6的setup调用setuptools我可以运行以下命令:

python setup.py clean

但这到底是做什么的?这个命令的帮助有点稀疏,正在运行

python setup.py clean --all

提供无用的陈述,如

'build/lib.linux-i686-2.7' does not exist -- can't clean it

是否有可能将此clean命令用于例如自动清理以.pyc.~结尾的临时python文件?可以使用此命令完成此操作,是否需要配置,...?

1 个答案:

答案 0 :(得分:6)

据我所知,它只删除了build子目录,其中Python放置了所有要安装的文件,包括需要编译的扩展。

除非您在源目录中的某些脚本上运行Python(如果运行测试可能会发生这种情况),或者直接从源目录导入模块,否则其他地方不应该有任何*.pyc个文件。 *~个文件是emacs备份文件,因此setup.py无法清除。{1}}。 (如果你从make clean看到过这种行为,那只是因为有人将其编码到Makefile中。)

您可能会以(递归方式)删除*.pyc文件的方式覆盖clean命令,但我怀疑是否需要。一般来说,如果前者发生变化,Python足够聪明,可以将*.py文件重新编译为*.pyc个文件,否则使用后者只会更快。

我遇到过一个警告,那就是在执行setup.py build_ext --inplace时,清理不会删除已编译的模块,因为这些模块不在构建目录中。对我来说,这感觉就像干净的命令的缺点。

总的来说,看起来添加了干净的命令以符合make的行为,但它似乎没有增加太多。