distutils
使用该py_compile.compile()
函数编译源文件。这个函数有一个doraise
参数,当设置为True
编译错误时会引发异常(默认是将错误打印到 stderr)。distutils
不要调用py_compile.compile()
with doraise=True
,因此编译不会因编译错误而中止。
要停止错误并能够检查setup.py
返回码(错误将是非零),您可以修补该py_compile.compile()
函数。例如,在您的setup.py
:
from setuptools import setup
import py_compile
# Replace py_compile.compile with a function that calls it with doraise=True
orig_py_compile = py_compile.compile
def doraise_py_compile(file, cfile=None, dfile=None, doraise=False):
orig_py_compile(file, cfile=cfile, dfile=dfile, doraise=True)
py_compile.compile = doraise_py_compile
# Usual setup...