django错误返回非零退出状态1

时间:2017-03-29 13:13:17

标签: python django

我将文件从Django网站上传到我的WordPress。

from subprocess import check_call
    try:
        check_call(['scp', filename, upload_filename])
         ....
    except (CalledProcessError, OSError):
        report['error_messages'].append("4 %s" % exc_info()[1])
        return report

这会出错:

  

命令' [' scp',' /uploads/test-01.txt',   ' mysite.com:/home/wp-content/uploads/test-01.txt']'返回非零   退出状态1

现在, 如果我从控制台手动执行:

scp /uploads/test-01.txt mysite.com:/home/wp-content/uploads/test-01.txt

它在工作:

test-01.txt  100% 0  0.0KB/s 00:00

(它是一个空文件,所以0 KB)

我不明白为什么scp会从Django失败。错误不明确。我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果您暂时将代码更改为使用check_output而不是check_call,则可以捕获标准错误。

from subprocess import check_output, CalledProcessError, STDOUT

try:
    check_output(['scp', filename, upload_filename], stderr=STDOUT)
except CalledProcessError as e:
    print(e.output)  # output from STDERR should show what is going wrong

这应该会给你一个提示是什么问题。如果Django网站以与您在控制台中测试命令时不同的用户身份运行,则可能是权限。