如果文件有CRLF行结尾,为什么在类unix系统上通过CGI/WSGI运行python脚本会失败?
在过去,我曾多次尝试在CGI或WSGI下运行Python脚本,结果在我的Web服务器日志中出现以下不明确的错误:如果文件有CRLF行结尾,为什么在类unix系统上通过CGI/WSGI运行python脚本会失败?,python,linux,cgi,webserver,wsgi,Python,Linux,Cgi,Webserver,Wsgi,在过去,我曾多次尝试在CGI或WSGI下运行Python脚本,结果在我的Web服务器日志中出现以下不明确的错误: [error] [client <client>] (2)No such file or directory: exec of '/path/to/web/root/test.py' failed 过去,我通过确保文件使用unix行结尾来解决此问题,但出于好奇,我有以下问题: 据我所知,上述错误意味着无法找到python可执行文件;我说的对吗? 如果找不到python可
[error] [client <client>] (2)No such file or directory: exec of '/path/to/web/root/test.py' failed
过去,我通过确保文件使用unix行结尾来解决此问题,但出于好奇,我有以下问题:
我已经在Ubuntu11.04上用Apache2.2验证了这个特定示例,在CGI下运行Python2.6 Python将能够处理CRLF行尾,但Linux/Unix只希望将LF作为行尾,因此一个令人难以置信的丑陋解决方案可能是(将^M作为文件名的一部分): 请注意,您必须从命令行转义^M,因此在bash中它将是^V^M 如果找不到python可执行文件,为什么?CRLF结尾是否打破了shebang线 是的,就是这样 除了转换格式,还有其他解决方法吗?有没有可能以这种方式配置CGI/WSGI来自动处理这个问题 不会让你想吐的东西?我不这么认为
#!/usr/bin/python
print "Content-Type: text/html\n\n"
print "Hello, World!"
$ sudo ln -s /usr/bin/python /usr/bin/python^M