python - "setup.py clean"究竟是做什么的?

标签 python python-2.7 setuptools setup.py

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

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 文件?这可以用这个命令完成吗,是否需要配置,...?

最佳答案

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

别处不应该有任何 *.pyc 文件,除非您在源目录中的某些脚本上运行 Python(如果您运行测试可能会发生),或者直接从源导入模块目录。 *~ 文件是 emacs 备份文件,因此无论如何都不会被 setup.py 清除。 (如果您从 make clean 中看到了这种行为,那只是因为有人将其编码到 Makefile 中。)

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

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

总的来说,似乎添加了 clean 命令以符合 make 的行为,但似乎并没有增加太多。

关于python - "setup.py clean"究竟是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17804185/

相关文章:

python-2.7 - 使用 basemap 在 map 上绘制轨迹

python: pickle.load() 引发 EOFError

python - 如何在 Python 包中包含共享 C 库

python - 尝试使用外键从不同类中按字段进行选择,出现错误

python - 从 python 更改 C 变量?

python - 如何确定过去的时区特定日期是否在 python 中是夏令时?

python - 使用 PyBabel 以编程方式提取消息

python - 解析字符句法图的思路

python - 如何在Hadoop Map Reduce Framework的reducer阶段中使用唯一名称创建用户特定的文件(在Python中)

Python 包附加名称