【问题标题】:Use Python on MAMP在 MAMP 上使用 Python
【发布时间】:2012-07-03 00:36:18
【问题描述】:

我正在慢慢地从 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。

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

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

【问题讨论】:

  • 您找到的链接是 404。

标签: python mamp wsgi


【解决方案1】:

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

#! /usr/bin/python

脚本会在此处尝试查找 Python,因此请将其更改为您的 Python 安装,或修复您的 Python 安装。

【讨论】:

  • 好吧,我的 Python 安装 那里,当我在终端中键入 which python 时,它确实告诉我 /usr/bin/python 但是当我访问 .cgi 文件时,不管它在localhost/ 或 file:// 我只获取文件的内容。这很奇怪。
  • @MaximeFabre 在您的 MAMP 安装目录中查找 Python。 (我的/Applications/MAMP/bin/apache2/bin/python,是/Applications/MAMP/Library/bin/python2.7的别名)
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

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

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

    1. 该文件必须具有执行权限。在终端:
    chmod 755 blah.cgi
    
    1. 文件必须在开头附近发送内容类型(Python 版本
    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 扩展名,但我不会在这里讨论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 2013-12-31
      • 2018-10-09
      • 2015-10-30
      • 2015-07-31
      • 2017-09-16
      • 1970-01-01
      相关资源
      最近更新 更多