我无法打开我的python文件。我是使用python的新手,我来自PHP背景,这对我来说完全不同。 我在服务器`public_html / python / index.py'上创建了一个测试文件,其中包含一个简单的hello world代码:
#!/usr/bin/python
print 'Content-type: text/html\r\n'
print '\r\n'
print 'Hello, World!'
我一直在环顾四周,我需要做一些配置步骤才能运行python文件。
在shell上确保通过运行python
安装了python并运行:
Python 2.4.3 (#1, Feb 22 2012, 16:05:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
然后我找到了python被安装的正确路径type -p python
并且它是正确的:
user@domain.com [~]# type -p python
/usr/bin/python
最后我在博客中读到,为了执行python文件oustide cgi-bin文件夹,我需要用以下行修改我的.htaccess文件:
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py
这也不起作用,但即使我尝试在cgi-bin
文件夹中运行它,我仍然会遇到同样的错误。
以防万一我也改变了文件的权限,什么都没有:
user@domain.com [~]# chmod a+x public_html/python/index.py
完成所有这些操作后,当我尝试在网络浏览器上打开网址时,仍然会收到500内部服务器错误。
当我执行od index.py -c
时,我得到以下内容:
0000000 # ! / u s r / b i n / p y t h o
0000020 n \r \n \r \n p r i n t ' C o n t
0000040 e n t - t y p e : t e x t / h
0000060 t m l \ r \ n ' \r \n p r i n t
0000100 ' \ r \ n ' \r \n p r i n t ' H
0000120 e l l o , W o r l d ! '
0000135
感谢这位不起眼的蟒蛇新手的帮助和指导。 顺便说一下,我在专用服务器中使用WHM和CPanel。
答案 0 :(得分:1)
要将标题与正文分开,您需要添加\r\n
两次。此外,所有标题都需要用单个\r\n
来源应该如下所示,
import sys
sys.stdout.write('Content-type: text/html\r\n')
sys.stdout.write('\r\n')
sys.stdout.write('Hello, World!')
另一个问题可能是你的shebang线的终点线。它应该是unix之类的。这意味着#!/usr/bin/env python
应以\n
结尾。尝试使用一些显示行结尾的编辑器打开它。或者在命令提示符od -c index.py
中。它将显示行结尾。如果是\r\n
,则需要\n
。
在偏移21处,您有\r
。那就是问题所在。按照以下命令
\r
tr -d \r < index.py > new.index.py
现在new.index.py
应该\n
行结束。
答案 1 :(得分:0)
如果您使用的是Apache,则应使用mod_python
和WSGI
。