Python子进程返回非零退出状态-6

时间:2011-12-11 17:17:16

标签: python django

这是我在stackoverflow上的第一篇文章。我希望我的问题不是愚蠢:))

我正在使用django开发一个网站,在django里面我需要抓取网站的缩略图,所以我使用https://github.com/coderholic/PyWebShot来实现它。

我在django shell中使用子进程运行PyWebShot,但是当我将django放入apache2并使用url访问它时,它会失败。

以下是错误消息:

  

GIVEN_URL上的CalledProcessError

     

命令'['echo','$ HOME']'返回非零退出状态-6

实际上它在这个命令上失败了:

subprocess.check_output(['echo', '$HOME'])

我尝试将进程的输出和错误写入文件,但文件始终为空。

我希望有人能给我一个笔记或指示,谢谢!

ps:如果需要更多信息,请告诉我。

3 个答案:

答案 0 :(得分:2)

我检查Apache错误日志并发现一个奇怪的错误。之后,我在网上冲浪,发现它是一个旧的python2.7错误。所以我补丁然后解决了这个问题!谢谢大家。

答案 1 :(得分:1)

apacher服务器可能无法使用“echo”命令(取决于PATH的值,不一定与手动运行时相同)。但更可能的是,没有为运行Apache服务器的帐户定义$ HOME env var。 CGI脚本可以使用一组标准的env变量(例如参见http://www.perlfect.com/articles/cgi_env.shtml甚至CGI spec itself)。最后,apache的mod_env模块允许您将一些env变量传递给脚本,您可以在httpd.conf中指定它们。

答案 2 :(得分:0)

这很可能是Python 2.7.2中报告的bug。升级到更新版本应解决此问题。

apache日志中报告的错误类似于:

Fatal Python error: Couldn't create autoTLSkey mapping