【问题标题】:Passing argument from PHP to Python not working将参数从 PHP 传递到 Python 不起作用
【发布时间】:2016-11-22 16:52:11
【问题描述】:

我有一个名为 Rainbow.py 的 Python 脚本。我可以选择使用参数运行它。从命令行 python rainbow.pypython rainbow.py 4 效果很好。当我从 php 调用这个脚本时,我无法传递参数。 我试过了:

$argument=4; 
exec("python rainbow.py 4");
exec("python rainbow.py $argument");
exec("python rainboy.py .$argument"); 

它们使代码像没有有效参数一样运行。 (我在我的python代码中使用duration=int(sys.argv[1],脚本需要一段时间后停止,从php调用时,默认持续时间始终处于活动状态) 我试过了

$argument="4"

也是,没用。 你能告诉我有什么问题吗?我怎样才能通过这个论点?我对python很有信心,但我是个php新手。

我的部分php代码:

$argument="2";
echo "printing line  <br>";

exec("python rainbow.py $argument");//duration option does not work

我的python代码的一部分:

duration=10

try:
    if sys.argv[1]!=None:
        print "arg found!"

        duration=int(sys.argv[1])
except: pass
print "duration:",duration

从 php 调用 python 时,我看不到持续时间打印出来,但从 LED 可以清楚地看到持续时间总是 10 秒

【问题讨论】:

  • 您确定代码示例中对 exec 的第二次调用不起作用吗?
  • 是的,我是肯定的。

标签: php python raspberry-pi parameter-passing


【解决方案1】:

我在 python 调用中添加了 sudo:

exec("sudo python rainbow.py $argument")

它现在可以正常工作了。有人能告诉我为什么吗? python 脚本也可以在没有它的情况下运行,但没有考虑参数。

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 2016-09-22
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多