在 Python 脚本出现标题错误之前脚本输出结束

Posted

技术标签:

【中文标题】在 Python 脚本出现标题错误之前脚本输出结束【英文标题】:End of script output before headers error with Python Script 【发布时间】:2019-04-23 11:13:45 【问题描述】:

我已经阅读了多篇关于此的 SO 帖子,但似乎无法使其正常工作。这是我第一次在 Apache 上使用 Python,因此我将不胜感激!

所以最终,我试图在我的 htdocs 中运行 Python 脚本,但我似乎无法让简单的 Python 脚本在 XAMPP 上运行。我不断收到 500 错误:

myurl.py

#!/usr/bin/env python3

print("Content-Type: text/html")
print()
print ("""
    <TITLE>CGI script ! Python</TITLE>
    <H1>This is my first CGI script</H1>
    Hello, world!
"""
)

【问题讨论】:

尝试用 print("Content-type: text/html\n\n") 替换第一行 @MadisonCourto 我尝试替换它并没有帮助 @Sam 查看 Apache 编写的错误日志。它将为您提供有关导致 500 错误的确切原因的更多信息。它通常存储在 /var/log/apache2/error.log 之类的地方 @RobBricheno [2018 年 11 月 20 日星期二 17:49:06.593901] [cgi:error] [pid 47854] [client ::1:50462] AH01215: (13)Permission denied: exec of '/ Applications/XAMPP/xamppfiles/htdocs/myurl.py' 失败:/Applications/XAMPP/xamppfiles/htdocs/myurl.py [Tue Nov 20 17:49:06.595547 2018] [cgi:error] [pid 47854] [client :: 1:50462] 标头之前的脚本输出结束:myurl.py @RobBricheno 好像我没有正确的权限,对吧?我该如何改变? 【参考方案1】:

根据讨论,这里有多个问题,通过检查apache编写的error.log然后进行适当的更改来解决。

第一个错误是:

[2018 年 11 月 20 日星期二 17:49:06.593901] [cgi:error] [pid 47854] [client ::1:50462] AH01215: (13) 权限被拒绝:执行 '/Applications/XAMPP/xamppfiles/htdocs/myurl.py' 失败: /Applications/XAMPP/xamppfiles/htdocs/myurl.py [11 月 20 日星期二 17:49:06.595547 2018] [cgi:error] [pid 47854] [client ::1:50462] 结束 标题前的脚本输出:myurl.py

这里的相关部分是:

(13)Permission denied: exec of '/Applications/XAMPP/xamppfiles/htdocs/myurl.py' failed

需要对正在执行的.py 文件设置权限,以允许运行 apache 进程的用户执行脚本。这是使用chmod 完成的。

然后,又出现了一个错误:

[2018 年 11 月 20 日星期二 17:59:04.720816] [cgi:error] [pid 48715] [client ::1:50555] AH01215:python3:没有这样的文件或目录: /Applications/XAMPP/xamppfiles/htdocs/myurl.py [11 月 20 日星期二 17:59:04.720884 2018] [cgi:error] [pid 48715] [client ::1:50555] 结束 标题前的脚本输出:myurl.py

相关部分是:

python3: No such file or directory

这表明系统找不到要执行的python3 二进制文件。必须使用which python3 确定python3 解释器的正确路径。然后将其编辑到脚本的 shebang 行中。

【讨论】:

以上是关于在 Python 脚本出现标题错误之前脚本输出结束的主要内容,如果未能解决你的问题,请参考以下文章

即使脚本有效,也会收到“标题前脚本输出结束”错误

Python windows脚本子进程在脚本结束后继续输出

如何调试导致python崩溃的python脚本

CentOS 上的“头文件前的脚本输出结束”,但在其他 LAMP 堆栈上工作

在开始睡眠(或直到脚本结束)之后对象输出的奇怪延迟

在 slideUp 动画结束之前再次触发函数时动画出现故障