在 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 脚本出现标题错误之前脚本输出结束的主要内容,如果未能解决你的问题,请参考以下文章