在PhP不工作的情况下执行一些python脚本

2024-06-17 13:14:05 发布

您现在位置:Python中文网/ 问答频道 /正文

想问一下,因为我正在设计一个网页,其中会有几个按钮,当按下时会运行不同的python脚本。在

现在,我尝试了一个基本的例子,使用jquery和php传递命令,首先只运行一个python脚本,在终端控制台中打印出helloworld,但它不起作用。我试过寻找,但似乎找不到解决办法。有什么帮助吗?(其中一个是关于使用快速cgi?任何人都能解释一下吗?)在

注: -我在macosx上编写代码,使用XAMPP,但将把代码移植到rampberry pi和LAMPP安装。(因此,如果两个操作系统的命令行和建议不同,将不胜感激)

我的代码:

下面是我在按下按钮时创建一个按钮时运行一个简单的python脚本的代码

在主.php在

<!DOCTYPE html>
<html>
<head>
 <script type="text/javascript" src="js/general_v2.js"></script>
</head>

    <body>

        <button id="button_py1" type="button">Press to test Py</button>

 </body>
 </html>

下面是general_v2.js中的代码

^{pr2}$

下面是py的代码_运行.php在

<?php
        $command = escapeshellcmd("python z_py/testPyscript.py");
        $output = shell_exec($command);
        echo $output;
        echo  "php_works";

?>

python文件:

#! /usr/bin/env python

print "hello world python script"

编辑: -我尝试过通过键入url路径名来直接执行脚本,但它也不起作用(它会打印出一个随机的测试消息,所以我相信这不是文件的权限错误) -关于执行python的php代码,我不太熟悉它的使用(我发现在forumn上(不记得在哪里,但是我试过了,但是不起作用),也找到了exec命令,并尝试了如下所示,但它也不起作用:

这是我使用exec(py)的另一种尝试_运行.php)在

<?php
        $command = "python z_py/testPyscript.py";
        exec($command);

?>

解决了! 感谢@Shawn Mehan

解决方案是python文件已经与php文件位于同一目录中,因此删除路径名可以解决问题。在

更新代码:

<?php
        $command = escapeshellcmd("/usr/bin/python testPyscript.py");
        $output = shell_exec($command);
        echo $output;
        echo  "php_works";

?>

Tags: 文件代码pyecho脚本outputhtmljs
2条回答

您不想在这里使用escapeshellcmd。该函数用于转义参数,以便用户无法输入foo;reboot并重新启动系统。但是,由于您没有任何用户输入,所以您不需要它。在

相反,您需要:

$output = shell_exec("python z_admin_face/testPyscript.py");

如果我改变你的py,你的代码对我有用_运行.php稍微包括python的路径,例如:

<?php
        $command = escapeshellcmd("/path/to/python/python z_admin_face/testPyscript.py");
        $output = shell_exec($command);
        echo $output;
        echo  "php_face2";

?>

相关问题 更多 >