【问题标题】:Trying to exec Python script using PHP尝试使用 PHP 执行 Python 脚本
【发布时间】:2016-11-29 07:24:53
【问题描述】:

我正在尝试使用 PHP 执行 python 脚本,但是当通过 php 执行时 python 似乎不起作用。

我尝试了这段代码来测试

$cmdResult = shell_exec("ls & /usr/local/bin/python2.7 --version & echo done");

返回:

done
LICENSE
example.py

当我在控制台(shell)上执行它时:

[root@local folder]# /usr/local/bin/python2.7 --version
Python 2.7.6

谁知道问题出在哪里?

附加信息:

[root@local folder]# ls -all /usr/local/bin/py*
-rwxr-xr-x 1 root apache      84 Jul 21 21:53 /usr/local/bin/pydoc
lrwxrwxrwx 1 root root        24 Jul 21 21:43 /usr/local/bin/python -> /usr/local/bin/python2.7
-rwxrwxrwx 1 root apache 4669791 Jul 21 21:53 /usr/local/bin/python2.7
-rwxr-xr-x 1 root apache    1674 Jul 21 21:53 /usr/local/bin/python2.7-config

【问题讨论】:

  • 使用passthru() 而不是shell_exec()
  • 也没有返回 Python 版本。 passthru()
  • 使用&& 而不是&
  • 使用 && 代替 & 也没有返回 python 版本。结果:example.py LICENSE done(仅更改了结果的顺序)
  • 你把&都换了吗?

标签: php python bash


【解决方案1】:

在你的 shell 命令中尝试像这样使用&&

ls && /usr/local/bin/python2.7 --version && echo done

所以你的代码会读取

$cmdResult = shell_exec("ls && /usr/local/bin/python2.7 --version && echo done");

【讨论】:

    猜你喜欢
    • 2013-11-02
    • 2011-05-15
    • 2018-01-29
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    相关资源
    最近更新 更多