Docker + Django执行外部node.js脚本

时间:2018-03-28 11:56:02

标签: python django docker command

我在执行节点js脚本时遇到问题。当我通常从命令行运行此脚本时,一切正常。

enter image description here

但是当我想直接从django执行该脚本时,它将打印出如下错误:

enter image description here

第一行表示您在执行该脚本的代码行之前的代码中。其次是路径,正如你所看到的那样。第三,错误是该目录中的文件(我正在检查是否从命令行执行命令)

我记得这个django项目在docker容器中运行,所以我认为可能存在错误。

这是我的代码行,我在view.py中运行该脚本:

def prepare_log_img(picture):
    string_without_header = re.sub('^data:image/.+;base64,', '', picture)
    img_data = base64.b64decode(string_without_header)
    filename = SITE_ROOT + "/faceId/logged.png"
    with open(filename, 'wb') as f:
        f.write(img_data)
    os.chdir(SITE_ROOT + "/static/scripts")
    print("Pred face detection")
    print(SITE_ROOT + "/static/scripts")
    print(os.system("ls"))
    os.system("node face-detection.js logged.png")

最后一行是执行。谁知道问题是什么?谢谢。

1 个答案:

答案 0 :(得分:1)

执行node face-detection.js logged.png行的操作系统不知道在哪里找到您的节点安装。您可以通过提供节点安装的完整路径来解决这个问题。

在常规终端窗口中输入which node,找出它的安装位置,对我来说结果是/usr/sbin/node。所以,如果我要运行该命令,它应该是:

os.system("/usr/sbin/node face-detection.js logged.png")