树莓派 Python shebang 与 cgi 服务器

1 投票
1 回答
1339 浏览
提问于 2025-04-17 20:45

我正在尝试在我的树莓派上运行一个本地CGI服务器,目的是托管一个网页,这个网页上有一个链接,这个链接指向一个CGI脚本,应该触发另一个脚本,然后打印HTML代码以重定向回起始页面(这样就不会卡住)。

在服务器的根目录下,我有:

index.html

favicon.ico

Server.py

cgi-bin

我的服务器设置为使用cgi-bin文件夹来存放CGI脚本。

我遇到的问题是,似乎无法调用这些脚本,所以我应该能够直接输入“Server.py”,而不是“python Server.py”。

为此,我尝试了多种shebang(脚本开头的特殊注释):

#!/usr/bin/env python

#!/usr/bin/python

然后我执行了chmod a+x Server.py来标记它为可执行文件,但仍然没有成功。

为了澄清,我使用的是:

python 2.7.3rc2

标准的树莓派Linux发行版“wheezy”。

我在一些帮助文档中读到,如果文件有DOS风格的换行符,会干扰shebang,所以我确保现在是MAC风格的换行符,但这仍然没有解决问题。

为了进一步测试,我创建了一个简单的Python文件,内容是:

#!/usr/bin/python

print "Hello World!"

将其保存为test.py,标记为可执行文件,然后在命令行中尝试:

/test.py

结果我得到了:

print: bad interpreter: No such file or directory

有人能告诉我我哪里出错了吗?

谢谢

詹姆斯

1 个回答

-1

试着在脚本中去掉Windows的换行符。这对我有用。

比如,可以看看这个链接:如何把Windows的换行符转换成Unix的换行符(CR/LF转LF)

如果想了解更多可能导致这个问题的原因,可以看看我在这里的回答:https://stackoverflow.com/a/65249192/1150303

撰写回答