PHP exec命令运行python脚本,但不运行python3


PHP exec command runs python script but not python3

我目前安装了python 2.7作为OSX的一部分,最近安装了3.5.2。

我使用XAMPP在mac上运行一个本地Web服务器,当我从apache中执行python脚本时,它加载良好:

$executePython = "python " . __DIR__ . "/cycle/cutoff.py $device_id $processPreviousMinutes";
exec("$executePython");

但是,当我用python3替换python时,我的脚本拒绝运行。我可以使用这两个版本从命令行手动调用它,但是apache帐户/守护进程似乎无法访问python3。这会与我忽略的配置文件有关吗?

我们不想在最新的OSX上破坏系统范围的路径。如果你像这样在脚本中添加python3路径,然后进行正常的

putenv("PATH=/usr/local/bin/:" . exec('echo $PATH'));
$executePython = "python3 " . __DIR__ . "/cycle/cutoff.py $device_id $processPreviousMinutes";
exec("$executePython");

putenv只是将您的python3路径添加到XAMPP的apache中的当前路径中。