将变量从php传递到python脚本并运行os.system()

将变量从php传递到python脚本并运行os.system(),php,python,variables,os.system,Php,Python,Variables,Os.system,我需要用php脚本设置我的树莓pi的日期和时间。 经过一些研究,我使用php脚本调用python脚本。 My datetime.php: $date = '2015-09-05'; $output = shell_exec('/usr/bin/python/home/pi/datalogger/modules/sys/write_date.py ' . $date); echo $output; os.system("sudo date -s "+"'"+date_object+"'")

我需要用php脚本设置我的树莓pi的日期和时间。 经过一些研究,我使用php脚本调用python脚本。 My datetime.php:

$date = '2015-09-05'; 

$output = shell_exec('/usr/bin/python/home/pi/datalogger/modules/sys/write_date.py ' . $date);

echo $output;

os.system("sudo date -s "+"'"+date_object+"'")
写_date.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
from datetime import datetime

def main():
    date=sys.argv[1]
    time='22:04'
    print(date) #for debug

    string_date=date+' '+time+':00'
    date_object2=datetime.strptime(string_date, "%Y-%m-%d %H:%M:%S")
    date_object=date_object2.strftime("%a %b %d %H:%M:%S"+" UTC "+"%Y")
    os.system("sudo date -s "+"'"+date_object+"'")

if __name__ == '__main__':  
    main()

当我刷新我的datetime.php时,我得到了日期打印,所以脚本可以工作。。。问题是我的日期没有更新。但是,如果我在命令行中运行write_date.py,我可以更新raspberry的日期时间。

在基于Linux的系统(例如raspberry Pi)上通过PHP设置日期的示例:


您正在通过Python执行shell命令,为什么不在PHP中格式化日期对象并通过PHP运行相同的命令?我想我不确定为什么要从PHP到Python来执行简单的命令。PHP可以在Pi上为你做这件事。在
string\u date=date+''之后的某个地方调试你的代码。这是一个打字错误,或者你的php脚本中有python代码?Twisty,你能给我一个例子吗?marmeladze,我打印date_对象并运行…Twisty,我已经尝试了,但我的树莓的日期没有改变。我需要“激活一些sudo权限”吗?我想是的。只是确认一下,PHP页面正在RPi上运行,对吗?如果是这样,apache用户或www数据可能需要特定位置的权限才能运行date。这将有助于权限:
<?php
date_default_timezone_set('UTC');
$dt = date("D M j G:i:s T Y", strtotime("2015-09-05 22:04"));
$output = shell_exec('sudo date -s "$dt"');
?>