pep8与织物失败

时间:2014-07-16 15:15:41

标签: python fabric pep8

我想使用python pep8检查我的代码并生成有关我的应用程序质量的报告

我使用以下命令手动使用它:

# In my app root directory
pep8 . > report.txt

生成一个report.txt文件,pep8检测到所有PEP8错误

但是现在,我需要将它包含在Fabric脚本中。我刚刚那样做了:

def test_pep8():
    env.run("pep8 . > report.txt")

当我运行test_pep8时,出现以下错误,我不知道原因:

(test)➜  fab test_pep8
    [localhost] Executing task 'test_pep8'
    [localhost] local: pep8 . > report.txt

    Fatal error: local() encountered an error (return code 1) while executing 'pep8 . > report'

你知道我为什么会有这样的错误吗? :(生成文件报告,但此错误代码正在停止我的结构命令。

1 个答案:

答案 0 :(得分:1)

这是因为pep8 .返回非零错误代码,这意味着它发现警告并且代码未验证。而且,根据面料的Failure handling

  

Fabric默认为“失败快速”的行为模式:如果有的话   错误,例如返回非零返回值的远程程序或   你的fabfile的Python代码遇到异常,执行会   立即停止。

解决方案是使用hide暂时将warn_only设置为Truesettings context manager错误:

from fabric.context_managers import settings, hide

def test_pep8():
    with settings(hide('warnings', 'running', 'stdout', 'stderr'),
                  warn_only=True):
        env.run("pep8 . > report.txt")