首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么运行python脚本会导致Apache中的错误

为什么运行python脚本会导致Apache中的错误
EN

Stack Overflow用户
提问于 2014-01-11 22:03:40
回答 2查看 1.9K关注 0票数 0

通过网站运行以下python脚本很好,并且(如预期的)停止MPD的回放:

代码语言:javascript
运行
复制
#!/usr/bin/env python
import subprocess
subprocess.call(["mpc", "stop"])
print ("Content-type: text/plain;charset=utf-8\n\n")
print("Hello") 

但是,此脚本会导致错误(回放按预期开始):

代码语言:javascript
运行
复制
#!/usr/bin/env python
print("Content-type: text/plain;charset=utf-8\n\n")
print ("Hello")

import subprocess
subprocess.call(["mpc", "play"])

错误是:

代码语言:javascript
运行
复制
malformed header from script. Bad header=Scorpions - Eye of the tiger -: play.py, referer: http://...

显然,回放命令返回的任何内容都被作为标题。在终端运行时,输出看起来很好。为什么会是?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-11 22:08:48

  1. 您正在某种类似CGI的环境中运行脚本。我强烈建议使用一个轻的网络框架,如瓶或瓶。
  2. mpc play正在给stdout写信。你得让它闭嘴: 将open(os.devnull,'w')导入os为dev_null: subprocess.call("mpc",“停止”,stdout=dev_null)
  3. 要使headers有效,需要使用\r\n而不是\n\n来分隔它们。
票数 2
EN

Stack Overflow用户

发布于 2014-01-11 22:06:08

您需要使用\r\n行尾。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21068471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档