繁体   English   中英

从Laravel 4 Controller执行Python脚本

[英]Executing Python script from Laravel 4 Controller

我正在尝试从我的Controller执行Python脚本。 在我的控制器目录中,我创建了一个名为pythonScripts的文件夹,其中放置了我的脚本。 从我的控制器功能我以json格式从数据库获取数据,并将其传递给python以创建网络,然后使用networkx在网络上进行一些分析。 问题是我无法执行脚本。 以下是我运行脚本的代码。

$output = array();
exec("/pythonScripts/createNetwork.py '{$connections}' ", $output);
return json_encode($output);

其中$connections是关于用户与其他用户的$connections的JSON数据。

在python脚本中,目前,我只打印出传入的内容以查看脚本是否正在执行但作为回报我得到一个空数组[]。 以下是我的python脚本。

import json
import networkx as nx 
import sys
from networkx.readwrite import json_graph


def main():
    userJSONData = sys.argv[1] #the JSON format of user data will be passed into this script.
    print userJSONData


if __name__ == '__main__':
    main()

我不知道脚本是否正在执行......有什么帮助吗?

您必须从脚本执行中获取返回值以检查它是否成功(== 0)并且如果您的脚本不可执行,您还必须调用python:

exec("/usr/bin/python /pythonScripts/createNetwork.py '{$connections}'", $output, $return);

if ($return) {
    throw new \Exception("Error executing command - error code: $return");
}

var_dump($output);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM