我正在使用python 3.5,并且注意到python setuptools会返回退出代码0,即使程序包编译失败。我所做的只是python setup.py bdist_egg
,然后检查退出代码echo $?
。 stdout在编译中显示语法错误,但退出代码为0。这在setuptools中是预期的吗?如果是这种情况,在bash脚本中捕获程序包编译错误的典型方法是什么?
这里是一个示例:
#setup.py
from setuptools import setup, find_packages
setup(
name="HelloWorld",
version= '0.1',
packages=find_packages(),
)
有Hello目录,其中仅包含hello.py
和__init__.py
init .py仅包含一行“ 1 +”。这行产生预期的语法错误。当我运行python setup.py bdist_egg
时,确实在stdout上看到了预期的语法错误:
byte-compiling build/bdist.linux-x86_64/egg/Hello/hello.py to hello.cpython-36.pyc
File "build/bdist.linux-x86_64/egg/Hello/hello.py", line 1
1 +
^
SyntaxError: invalid syntax
但是,当我检查返回代码echo $?
时,它显示为0。这是设计使setuptools的预期行为吗?如果是这样,我如何在Shell脚本中知道该软件包已成功构建或失败?