使用PHP exec()运行Python脚本

2 投票
3 回答
4102 浏览
提问于 2025-04-18 00:59

我想在一个PHP/HTML文件的按钮点击事件中运行一个Python脚本。我尝试了以下方法。这种方式能用PHP的exec()函数实现吗?但是我尝试的却没有成功。我的代码哪里出问题了呢?

HTML文件

<html>
<head></head>
<body>
<H3>Run Python Script...</H3>
<form name="input" action="test2.php" method="get">
<input type="submit" value="Submit">
</form>
</body>
</html>

PHP exec()

<html>
<head></head>
<body>
<H3>Executing...</H3>
<?php exec("first.py"); ?>
<H3>Completed...</H3>
</body>
</html>

3 个回答

1

试着运行这段代码:exec("/usr/bin/python path/to/first.py")

这段代码的意思是用Python来执行一个叫做"first.py"的文件,文件的路径是"路径/to/first.py"。这里的"/usr/bin/python"是Python程序的安装位置,告诉计算机去哪里找到Python。简单来说,就是让计算机去执行你指定的Python脚本。

2

exec 是用来执行命令的,就像在命令行里输入一样。直接通过 bash 运行 first.py 是不行的。你有两个选择:

选择 A

你可以明确告诉 Python 解析器去运行这个文件,方法是:

exec('python first.py');

选择 B

确保你的 Python 脚本的第一行是 Python 的路径:

#!/usr/bin/python

#Python code...

然后调用 exec('./first.py')

(如果你选择这个选项,你需要确保这个脚本是可以执行的)

总结

我可能会选择选项 A,因为它最简单,能顺利完成任务。

希望这对你有帮助 :) x

1

即使是你的Python脚本,也可能会遇到一些问题。

首先:你能在控制台运行这个脚本吗?(脚本开头有没有写 #!/path/to/env/python 这行?)

如果没有,那就要么把它加到你的脚本里,要么加到exec函数里(不带#!)。

你也可以用 passthru 来代替exec,这样可以直接显示脚本的原始输出。

撰写回答