树莓派 Python shebang 与 cgi 服务器
我正在尝试在我的树莓派上运行一个本地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