在mac osx 10.11上运行MAMP 3.5上的python脚本

时间:2016-03-10 16:58:34

标签: javascript python macos mamp

我尝试运行一个简单的" helloWorld"新的MAMP 3.5上的python-snippet,因为旧的xampp可能会对mac osx el capitan的更新产生问题。

MAMP-Documentation表示mod_wsgi,实际的python和mod_python是嵌入的。但是,如果我将我的test.py放在htdocs并尝试通过JavaScript函数(ajax.POST)联系它,似乎找到了脚本,但结果我只在firebug-console中收到test.py的文本背部。不知怎的,似乎没有执行python脚本。

test.py中的标题是#!/bin/usr/python,我还尝试将test.py放在MAMP / cgi-bin目录中,或者使用其他现有的python路径(MAMP /"哪个python& #34;)有没有人有想法?以下是我的两个片段:

    <script type="text/javascript">
        $(document).ready(function(){

            $("button").click(function(){

                var myValue = $("input:text").val();
                console.log(myValue);

                $.ajax({
                     type: "POST",
                     url: "test.py",
                     data: { myPy: myValue},

                     success: function(data) {   
                        console.log("This is my result: ", data);             
                    }        
                });
            });
       });
    </script>

这是test.py:

    #!/bin/usr/python

    def myjsfunction (myPy):
         return (myPy)

1 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题,我通过以下方式设法解决了问题:

披露:

  • 目前正在运行MAMP 3.5
  • Python 2.7

步骤:

  1. 在标签内的httpd.conf文件(MAMP / conf / Apache / httpd.conf)中添加以下行,如下所示:
  2. 要添加的行:

    Options FollowSymLinks +ExecCGI
    

    要添加的部分:

        <Directory />
            Options Indexes FollowSymLinks
            AllowOverride None
            Options FollowSymLinks +ExecCGI
        </Directory>
    
    1. 按如下方式创建一个.cgi python文件(此文件的扩展名应为.cgi btw,你应该从你的ajax调用中调用它):

       #!/usr/bin/python
       print 'Content-type: text/html\n\n'
       import cgi
       response = cgi.FieldStorage()
       print response["myPy"].value
      
    2. 这应该可以为您提供所需的输出。如果您不想使用原始CGI,请查看此帖子以获取python脚本的其他选项(即django)。

      How are POST and GET variables handled in Python?

      希望这有帮助。