编辑其实可以用配置文件的路径作为函数的参数来解决问题
sm.ReadConfig(Filename="/home/myuser/.gammurc")
我正在为 python 使用 Gammu 库。我的想法是创建一个可以发送 SMS 的 python 脚本,以便以后从脚本 PHP 调用它。
这是python脚本的代码。
#!/usr/bin/env python
import gammu
import sys
sm = gammu.StateMachine()
sm.ReadConfig()
if len(sys.argv) != 3:
print 'Uso: sms.py MENSAJE DESTINATARIO'
sys.exit(1)
rawtext = sys.argv[1]
spttext = rawtext.split("*e*")
text = " ".join(spttext)
sm.Init()
message = {
'Text': text,
'SMSC': {'Location': 1},
'Number': sys.argv[2],
}
if (sm.SendSMS(message)):
print "OK"
如果我从终端使用此脚本工作正常,问题是当我使用 exec() 从 PHP 调用脚本时,在运行 ReadConfig() 函数时我从 Gammu 库中收到错误:
gammu.ERR_CANTOPENFILE: {'Text': u'Can not open specified file.', 'Code': 28, 'Where': 'FindGammuRC via ReadConfig'}
我已经允许网络服务器使用 gammu,运行命令“sudo adduser www-data dialout”,但我不知道还有什么问题。
这是我从 PHP 调用脚本的方式:
$rcmd="python /home/my_user/Escritorio/pythonSMS/sms.py -V 2>&1";
exec($rcmd, $output);
我正在寻找任何帮助或建议,谢谢。