这是我在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:如果需要更多信息,请告诉我。
答案 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