Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Docker+Django正在执行external node.js脚本_Python_Django_Docker_Command - Fatal编程技术网

Python Docker+Django正在执行external node.js脚本

Python Docker+Django正在执行external node.js脚本,python,django,docker,command,Python,Django,Docker,Command,我在执行节点js脚本时遇到问题。当我从命令行正常运行这个脚本时,一切都正常 但当我想直接从django执行该脚本时,它会打印如下错误: 第一行表示您在执行该脚本的代码行之前的代码中。第二个是路径,正如您所看到的,它是正确的。第三个错误是我正在检查从命令行执行命令是否有效的目录中的文件 我记得这个django项目在docker容器中运行,所以我认为可能存在错误 以下是我在my view.py中运行该脚本的代码行: def prepare_log_img(picture): string_w

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

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

第一行表示您在执行该脚本的代码行之前的代码中。第二个是路径,正如您所看到的,它是正确的。第三个错误是我正在检查从命令行执行命令是否有效的目录中的文件

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

以下是我在my 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")

最后一行是执行。有人知道问题出在哪里吗?多谢各位

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

在一个常规的终端窗口中,输入哪个节点,找出它安装在哪里,对我来说,结果是/usr/sbin/node。因此,如果我要运行该命令,它可能是:


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

感谢您的回复。我试过了,但我认为那个容器不知道那个目录在哪里。因为它打印了一个错误,无法找到安装节点的路径。因此,我认为我必须将node.js添加到容器中,但idk:/您如何访问此项目的Dockerfile?从节点9.10的docker映像的第一行开始,它提取一个基本映像,其中包含预安装的要从中工作的节点。唯一的问题是您可能已经在使用django base映像,如果是这种情况,我不确定安装node的最佳方式是什么。dockerfile中可能有Shell命令,但我对Docker了解不多。是的,我有访问权限,FROM仅用于项目的一个实体,因此我有django,当我添加另一个FROM时,它将被忽略,所以我认为这不是一个好的解决方案,但谢谢。