从 Codeigniter 执行 Python 文件
Executing a Python file from Codeigniter
我在从 Codeigniter 控制器的函数执行 Python 文件时遇到了一些问题。
~/application/controllers/Lights.php :
header("Access-Control-Allow-Origin: *");
class Lights extends CI_Controller {
public function __construct() {
parent::__construct ();
$this->load->helper ( array ('url', 'form') );
}
public function turnOn() {
system('sudo python test.py > /dev/null 2>/dev/null &');
}
}
但是当我尝试执行系统调用时,例如:
system("sudo gpio mode 15 out");
这非常有效。
提供 完整路径 到 python
二进制文件和 script
,即:
system('/full/path/to/python /full/path/to/test.py > /dev/null 2>/dev/null &');
如果 python
二进制文件已经在您的 apache 用户 (apache
/www-user
) 的 PATH
上,您可以忽略完整路径。
是的,我有这样的问题,谢谢 Pedro Lobito 的回答。
需要完整路径才能从根文件夹 CI 调用 python 文件。
比如
system('sudo -u root -S python /var/www/4led/turnon1.py');
*sudo -u root -S 是使用 root 权限的命令,不需要 root 密码 :D
我在从 Codeigniter 控制器的函数执行 Python 文件时遇到了一些问题。
~/application/controllers/Lights.php :
header("Access-Control-Allow-Origin: *");
class Lights extends CI_Controller {
public function __construct() {
parent::__construct ();
$this->load->helper ( array ('url', 'form') );
}
public function turnOn() {
system('sudo python test.py > /dev/null 2>/dev/null &');
}
}
但是当我尝试执行系统调用时,例如:
system("sudo gpio mode 15 out");
这非常有效。
提供 完整路径 到 python
二进制文件和 script
,即:
system('/full/path/to/python /full/path/to/test.py > /dev/null 2>/dev/null &');
如果 python
二进制文件已经在您的 apache 用户 (apache
/www-user
) 的 PATH
上,您可以忽略完整路径。
是的,我有这样的问题,谢谢 Pedro Lobito 的回答。 需要完整路径才能从根文件夹 CI 调用 python 文件。
比如
system('sudo -u root -S python /var/www/4led/turnon1.py');
*sudo -u root -S 是使用 root 权限的命令,不需要 root 密码 :D