5

我正在慢慢地从 PHP 迁移到 Python。特别是,当我在 webdev/webdesign 工作时,我想使用 Python 显示一个基本的 HTML 页面,使用以下代码:

#!/usr/bin/python
   
print('<html><head></head><body>This is a test</body></html>')

在我的主机上在线发送文件index.cgi,我在显示文件内容时没有问题。

当我尝试在MAMP上安装 WSGI 模块时,问题就开始了,或者只是为了让 Python 与它一起工作。

当它转到localhost/index.cgi文件的内容时,会显示而不是其结果。

我已经遵循了六个教程,但似乎没有一个有效,我总是在某个时候遇到问题。这似乎是因为 MAMP 附带的 Apache 不是以允许您向其中添加模块的方式构建的(例如 wsgi)。

这也是因为我找不到任何关于如何在 MAMP 上安装 Python 的最新文章,它们都可以追溯到 2008 年或 2009 年,带有旧版本的 MAMP、Python 和 Macports。

有人可以指出我目前的程序来完成这项工作吗?

编辑:好的,找到这篇文章后,我收集了 MAMP 默认情况下不处理 MAMP/ 中的 cgi-bin/ 文件夹之外的 CGI 脚本。所以我按照解释修改了 Apache conf 文件,它现在显然读取了 .cgi 文件,但抛出了错误 500,内容如上所示。代码是罪魁祸首还是 MAMP 的?

4

3 回答 3

2

让它工作,问题是在 cgi-bin/ 文件夹之外缺少 MAMP 的 CGI 解释(参见原始帖子)和缺少的标题:

print 'Content-type: text/html\n\n'

于 2012-07-02T16:04:32.067 回答
1

这只是标准的 CGI,这里没什么特别的,不需要 WSGI。您确实需要安装 Python。只要你的脚本能找到它,你就可以将它安装在任何你喜欢的地方。你看到这条线:

#! /usr/bin/python

那是脚本将尝试查找 Python 的地方,因此请将其更改为您的 Python 安装,或者将您的 Python 安装修复到那里。

于 2012-07-02T15:20:43.787 回答
1

我刚刚使用 Mamp V5.5 在 OSX Catalina 上完成了这个过程

对我来说,我必须遵循以下步骤:

  1. 确保您的文件有第一行:
#!/usr/bin/python

或任何有效 Python 安装或环境的路径。确保你的 python 工作正常。

  1. 该文件必须具有扩展名 cgi 例如
blah.cgi  (not .py)
  

然后它将在任何文件夹中工作。

  1. 该文件必须具有执行权限。在终端:
chmod 755 blah.cgi
  1. 该文件必须在开头附近发送一个内容类型(Python 版本 < 3 没有括号):
print('Content-type: text/html \n\n')
  1. 我建议的另一个步骤是在页面的开头添加这个:
import sys
sys.stderr = open("err.log",'w')

这会将所有错误消息路由到同一目录中的文件 err.log,这对于调试非常有用。如果您的页面返回 500 Internal Server Error,您应该会在 err.log 文件中看到一些错误(除非问题出在此语句之前的初始导入中)。

您可以进行其他配置更改以保留 .py 扩展名,但我不会在这里讨论。

于 2020-08-23T00:45:55.070 回答