python - .py 文件在浏览器中显示代码而不是运行

标签 python cgi localhost

我正在尝试开始使用 Python,但无法为本地主机正确设置我的服务器(使用 Ampps)。 Python 通过 IDLE 和命令行运行得很好,但是,当我在浏览器中打开文件时,代码会显示但不会运行。

我关注了这个http://www.imladris.com/Scripts/PythonForWindows.html用于设置 cgi 的教程,但它不起作用。

这是我的“hello world”程序的代码,如果这有什么不同的话。

#!/usr/bin/env python
# -*#!/usr/bin/python

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'

有什么建议吗?

最佳答案

您的网络服务器将您的 Python 代码视为静态文件而不是可执行文件。这里的目标是您希望 Apache 执行 python 并将标准输出发送回用户的浏览器。

我不熟悉 Ampps,但是获取此设置的基本 Apache 流程是这样的。

  1. 编辑 httpd.conf 的选项行以包含 ExecCGI
  2. 通过添加以下行将您的 python 文件注册为 httpd.conf 作为 cgi 处理程序:
    添加处理器.py
  3. 重启 Apache
  4. 确保您的 shebang 行(顶部的 #!/usr/bin/env python 位)实际指向您的 python 可执行文件的路径。对于 C: 上的 python2.6,这可能是:
    #!\Python26\python
  5. 如果您的脚本必须是可移植的,请不要修改 shebang 行,而是将行 ScriptInterpreterSource registry 添加到您的 httpd.conf,并确保 Windows 默认使用 Python.exe 打开 *.py 文件.这可以通过双击脚本来测试。如果它没有执行,请右键单击它,选择打开方式,然后选择其他,然后浏览到您的 python.exe。确保选中“始终使用此程序打开此类文件”框。有一篇关于此 here 的 Microsoft 知识库文章.

最后,mod_wsgi 或 FastCGI 是让 Apache 执行 python 的首选方法,优先选择流量较低的站点(每天请求数以千计)。我还建议研究 web 框架,例如 web.py(非常轻量级)或 django(重量更重,但如果您正在收集用户输入或与数据库交互,则可以节省大量时间)。

关于python - .py 文件在浏览器中显示代码而不是运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124235/

相关文章:

python pandas调用函数时出现未绑定(bind)本地错误 'df.apply'

python - 测试 SciPy 时出错

javascript - 将 C 中请求的数据返回到 ajax(jquery) CGI

mysql - 如何使用 localhost 连接到我的 mysql 服务器?

python - 通过 Grunt 运行 Python localhost

php - 如何编写可以修改 PHP 解释器内部结构的自定义 PHP 扩展?

c++ - 如何在 CGI 应用程序中解析 HTML 文件并修改其内容? C++

不同环境下的 PHP session 问题

macOS 塞拉利昂 : Localhost will not connect

python - 如何使用 Selenium 在 Firefox 中禁用推送通知