【问题标题】:Running Python scripts with Xampp使用 Xampp 运行 Python 脚本
【发布时间】:2017-07-30 23:58:42
【问题描述】:

我正在使用 python 2.7.13
起初浏览器显示的是原始代码。

我做了什么:

编辑 httpd.conf

AddHandler cgi-script .cgi .pl .asp .py  

在我所有脚本的顶部,我添加了这个:

#!j:/Installeds/Python/python   
print "Content-type: text/html\n\n"

现在它给了我Internal Server Error (500),我不知道还能尝试什么……第一次使用 python。

Obs:我认为这可能会有所帮助> Apache>Error.log

[cgi:error] [pid 6364:tid 1620] (9)错误的文件描述符:[client ::1:51083] AH01222:不知道如何生成子进程:C:/Files and Installs/Xampp /htdocs/Test/main.py
AH02102:C:/Files and Installs/Xampp/htdocs/Test/main.py 不可执行;确保解释的脚本有“#!”要么 ”'!”第一行

【问题讨论】:

    标签: python apache xampp


    【解决方案1】:

    在 XAMPP for Windows 中运行 Python

    第 1 步:下载并安装 Python

    https://www.python.org/downloads 下载并安装最新版本的 Python。

    第 2 步:为 Python 配置 XAMPP

    使用您选择的文本编辑器打开位于 .../xampp/apache/conf/httpd.conf 的 Apache httpd.conf 配置文件。

    XAMPP GUI 也可以快速访问httpd.conf 文件:

    将以下代码复制并粘贴到文件末尾:

    AddHandler cgi-script .py
    ScriptInterpreterSource Registry-Strict
    

    步骤 2.5:将 Python 扩展添加到默认页面位置(可选)

    httpd.conf 文件中搜索<IfModule dir_module> 以将index.py 等添加到默认页面位置列表中。

    <IfModule dir_module>
        DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm index.py \
        default.php default.pl default.cgi default.asp default.shtml default.html default.htm default.py \
        home.php home.pl home.cgi home.asp home.shtml home.html home.htm home.py
    </IfModule>
    

    第 3 步:重启 Apache / XAMPP

    如果 Apache 在编辑时正在运行,现在是时候重新启动它了。

    第 4 步:从 XAMPP 运行 Python

    在XAMPPhtdocs目录下创建文件夹和Python文件;例如.../xampp/htdocs/PythonProject/test.py.

    在脚本的开头,您首先需要指定 Python 可执行文件的目录。 Python 3.10.0 的默认位置是 C:/Users/&lt;YOUR_WINDOWS_PROFILE&gt;/AppData/Local/Programs/Python/Python310/python.exe,但在您的情况下,它可能会有所不同,具体取决于您安装 Python 的版本和目录。

    #! C:/Users/<YOUR_WINDOWS_PROFILE>/AppData/Local/Programs/Python/Python310/python.exe
    

    之后,您可以创建 Python 脚本。

    #! C:/Users/<YOUR_WINDOWS_PROFILE>/AppData/Local/Programs/Python/Python310/python.exe
    
    print("Content-Type: text/html\n")
    print("Hello, World!")
    

    保存文件并在您的网络浏览器中打开localhost/PythonProject/test.py。您的 Python 脚本应该正在运行。

    【讨论】:

    【解决方案2】:

    我想说一个重要的提示: 小心在 python 代码的顶部添加这一行:

     **print("content-type: text/html\n\n" )**
    

    完整的代码是这样的

    上面的答案写了这段代码,但他们没有直接引用这一行。 如果您不使用此代码,您可能会收到以下错误:

    在 xampp 的错误日志中,您会看到以下错误:

     [Fri Sep 24 15:44:14.122910 2021] [cgi:error] [pid 6004:tid 1832] 
       [client ::1:51952] malformed header from script 'main.py': Bad header: hamid 
      , referer: http://localhost/pythonProject/
    

    如果需要,希望您通过此答案解决您的问题

    【讨论】:

      【解决方案3】:
      1. 从这里 (https://www.python.org/downloads/) 下载 python 并安装它
      2. 打开XAMPP控制面板,点击config进入httpd.conf文件>>搜索addhandler并添加“.py”[不带引号]就像截图一样(如果没有添加) httpd.conf file
      3. 重启apache服务器

      运行 python 脚本: 打开任何文本编辑器并输入此代码

      #!C:/Users/"Username"/AppData/Local/Programs/Python/Python37-32/python.exe
      print("content-type: text/html\n\n" )
      print("<br><B>hello python</B>")
      

      在第一行,你必须在放一个 shebang (#!) 后键入 python.exe 文件的位置 “用户名” — 您的 PC 的用户名 这将因一个用户而异。你可以从环境变量中找到python的位置(见下面的截图)

      py environment variables

      • 然后把脚本放到xampp>> htdocs文件夹中
      • 打开浏览器并输入 localhost/”filename”.py (http://localhost/filename.py) [“文件名”=脚本名称] 你会看到这个输出

      output

      【讨论】:

        【解决方案4】:

        我正在运行 ubuntu 16.04,所以我的回答可能会有所不同。我在 /opt/lampp/htdocs/PythonProject 中使用带有名为 test.py 的 python 3 文件的 google chrome 浏览器:

        #test.py
        #!/usr/bin/env python3
        print('Content-type: text/html\r\n\r')
        print("<p>hello world!</p>")
        print("I can view this in my browser yay!!")
        

        我在 /opt/lampp/etc/httpd.conf 中编辑了我的 httpd.conf 文件,但我做了 not 添加

        AddHandler cgi-script .py
        ScriptInterpreterSource Registry-Strict
        

        到文件的末尾,而是将 .py 添加到现有行的末尾

        AddHandler cgi-script .cgi .pl
        

        最后我通过chmod +x /opt/lampp/htdocs/PythonProject/test.py 使文件可执行,然后我就通过浏览器运行它:

        http://localhost/PythonProject/test.py
        

        输出:

        hello world!
        
        I can view this in my browser yay!!
        

        【讨论】:

          【解决方案5】:

          Bad File descriptor 表示文件已损坏,并且表示它无法运行脚本,因此您可能错误地设置了 python。

          【讨论】:

            猜你喜欢
            • 2017-12-25
            • 2019-08-21
            • 2016-08-17
            • 2020-07-30
            • 2016-09-11
            • 2014-12-13
            • 1970-01-01
            • 2021-07-15
            • 2014-10-19
            相关资源
            最近更新 更多