How to get error log of a disutils setup in Python?

*爱你&永不变心* 提交于 2019-12-21 04:08:11

问题


I am new to Python. I have created some C/C++ extensions for Python and able to build those with the help of Python disutils setup script. But, I have to integrate this setup script to an existing build system. So, I wrote another script to call this setup script using run_setup() method.

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

Now, I want if any error occurs during the building of extension (Compiler, Linker or anything), I must be able to get the information along with the error string from the caller script to notify the build process.

Please provide me some suggestion.


回答1:


Setting DISTUTILS_DEBUG=1 in the environment will cause debug logging.




回答2:


distutils1 (first version) uses too a internal version of logging (a bit hardcoded, it is not using the standard logging module). I think that it is possible to set the verbosity level coding something like:

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

All distutils's logging levels available:

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

You can see the source code of the class "Log" of distutils for reference. Usually for Python 2.7 in /usr/lib/python2.7/distutils/log.py




回答3:


Passing the -v parameter to python setup.py build to increase verbosity usually works to get more detailed errors.




回答4:


The verbose option is not additive, it converts to a boolean. Thus no matter how many times you invoke the verbose option it will always be 1 and 1 always sets the level to INFO, which is the default anyway.



来源:https://stackoverflow.com/questions/13722706/how-to-get-error-log-of-a-disutils-setup-in-python

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!