10

我是 Python 新手。我已经为 Python 创建了一些 C/C++ 扩展,并且能够在 Python disutils 安装脚本的帮助下构建这些扩展。但是,我必须将此设置脚本集成到现有的构建系统中。因此,我编写了另一个脚本来使用 run_setup() 方法调用此设置脚本。

distributionObj = run_setup("setup.py",["build_ext"])

现在,如果在构建扩展(编译器、链接器或任何东西)期间发生任何错误,我必须能够从调用者脚本中获取信息以及错误字符串以通知构建过程。

请给我一些建议。

4

4 回答 4

18

在环境中设置 DISTUTILS_DEBUG=1 将导致调试日志记录。

于 2012-12-06T15:56:51.097 回答
8

distutils1(第一个版本)也使用了内部版本的日志记录(有点硬编码,它没有使用标准的日志记录模块)。我认为可以将详细级别编码设置为:

import distutils.log
distutils.log.set_verbosity(-1) # Disable logging in disutils
distutils.log.set_verbosity(distutils.log.DEBUG) # Set DEBUG level

所有 distutils 的日志级别可用:

DEBUG = 1
INFO = 2
WARN = 3
ERROR = 4
FATAL = 5

您可以查看 distutils 的“Log”类的源代码以供参考。通常用于/usr/lib/python2.7/distutils/log.py中的 Python 2.7

于 2012-12-31T10:36:27.183 回答
2

-v将参数传递python setup.py build给以增加详细程度通常可以得到更详细的错误。

于 2012-12-05T11:59:38.357 回答
2

详细选项不是附加的,它转换为布尔值。因此,无论您调用多少次详细选项,它始终为 1,并且 1 始终将级别设置为 INFO,无论如何这都是默认设置。

于 2016-05-10T16:32:21.530 回答