我一直在寻找如何通过PHP成功地exec
一个Python脚本,只是为了一个测试。在
自从我用PHP编程以来,我从来没有真正使用过Python,而是寻找一个简单的代码来将数据从PHP发送到Python,然后在.py
中将数据发送回PHP。在
我尝试过在PHP中使用exec
,无论是否使用json enc/dec,都没有成功。在
以下是我在PHP中尝试过的命令:
* $result = shell_exec('pythontest.py' . escapeshellarg(json_encode($data)));
* exec("python pythontest.py", $resultData);
var_dump($resultData);
没有成功。在
在pythontest.py
中:一种用于发回数据的打印。在
尝试使用Python和pythontest.py
(PHP)的完整路径。在
带json的enc/dec在PHP文件中工作,所以PHP代码似乎没有什么问题,但我无法运行脚本!在
正如我所说的,我以前没有使用过Python,所以我想知道是否有比在脚本中编写代码更需要的东西才能使它工作?在
如果不是他们的帖子,我就不会为他们的代码工作
附加信息:PHP通过WAMP,.py在同一个地图。它应该是基于网络的,如果这有区别的话。在
我现在尝试更改路径,因为
python.exe
不在同一目录中。 我的最终结果是$output = getenv('PATH');
echo "Real Path: " . $output . "<br>";
$ret = apache_getenv("PATH");
echo "Apache Path: " . $ret . "<br>";
apache_setenv("PATH", "C:/Python33");
$ret = apache_getenv("PATH");
echo "Apache new path: " . $ret . "<br>";
$output = getenv('PATH');
echo "Real path, hopefully changed: " . $output . "<br>";
这只是想看看我能不能改变这条路,因为我以前从来没有这样做过。 我现在只有
import sys, json
print ("hello")
在我的python文件中,尝试通过cmd运行它,它成功了。 但是当我尝试用php运行它时,它又一次失败了。 我还查看了权限: 管理员,用户有读取和执行的权限,我甚至添加了“每个人”对文件夹和子文件夹/文件的完全权限,只是看看是否有什么不同。 我错过了什么,或者我在权限、python代码或路径上做了什么错事?在
检查以确保包含
python.exe
的目录位于PHP脚本的路径中(通过getenv('PATH')
)。在尝试通过Windows命令提示符直接运行
python c:\path\to\pythontest.py
。这样行吗?如果没有,请从那里调试路径和问题,然后在PHP中重试。在如果WAMP堆栈以有限的权限运行PHP,请检查以确保用户对
python.exe
文件以及包含该文件的整个目录具有“读取和执行”类型的权限。这可能有点过头了,但是递归地在整个python分发目录上为该用户设置perms,可以排除与权限相关的问题。在尝试用
.exe
来限定python可执行文件的名称,例如c:\python27\python.exe pythontest.py
(您可能已经尝试过了,因为您说您尝试了“完整路径”,但是我将其抛出以确保您包含.exe
)。在尝试将
pythontest.py
的内容替换为非常简单的内容(例如print 'hello'
),并检查行为是否发生了变化。在另外,请张贴
pythontest.py
的内容(或至少第一行)。在相关问题 更多 >
编程相关推荐