当前位置: 首页 > 知识库问答 >
问题:

我的aws实例抛出无法找到节点错误,即使在安装nodejs

姜钧
2023-03-14

我有一个AWS EC2实例,其中包含一个CentOS(至少我是这么认为的),我按照这个链接(如何在Amazon Linux上yum install Node.JS)在我的实例上安装nodejs(第二个答案)。问题是我能够成功地安装它,甚至能够运行以下命令

node --version
v8.11.1

npm --version
5.6.0

node -e "console.log('Running Node.js ' + process.version)"
Running Node.js v8.11.1

但是我有一个python文件,它通过python的子流程模块运行一个节点命令。这是下面的python文件

import json
import yaml
import subprocess


def output_filter(json_data, exp):
    json_data = json.dumps(json_data)
    result = subprocess.check_output(['node', '/home/ec2-user/api-demo/jstest3.js', json_data, exp])
    dict = yaml.load(result.decode("utf-8"))
    filtered_output = json.dumps(dict)
    return json.loads(filtered_output)

下面是我的jstest3。js文件

var args = process.argv.slice(2);
//console.log(args[0]);

var jsonata = require("jsonata");

var data = JSON.parse(args[0]);
var expression = jsonata(args[1]);
var result = expression.evaluate(data);
console.log(result);

我基本上使用一个名为jsonata的nodejs库来执行一些JSON解析。我能够使用执行这个python文件在我的本地机器(我有一个Ubuntu 16.10x86_64)没有任何问题。但是当我在我的aws实例中执行这个时,这是我得到的错误

result = subprocess.check_output(['node', '/home/ec2-user/api-demo/jstest3.js', json_data, exp])
  File "/usr/lib64/python3.5/subprocess.py", line 316, in check_output
    **kwargs).stdout
  File "/usr/lib64/python3.5/subprocess.py", line 383, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib64/python3.5/subprocess.py", line 676, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.5/subprocess.py", line 1289, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'node'

尽管我的aws实例中安装了节点(如上所示),为什么仍会出现此错误?我做错了什么?

共有1个答案

康恩
2023-03-14

啊!出于某种原因,AWS实例跟不上我所做的所有安装。所以一旦我通过访问AWS控制台重新启动实例-

 类似资料:
  • 问题内容: 使用在Windows 8上使用Python 2.7给我的错误: 问题: 如何解决错误?运行给出了同样的错误… 问题答案: 您可以改用ol’good 。 不是pip,而是它的一个好方面是也能够下载和安装二进制程序包,这使您无需准备VC ++。当然,这取决于二进制文件是为您的Python版本准备的。 更新: 是的,Pip现在可以安装二进制文件! 有一种新的二进制Python存档格式(whe

  • 问题内容: 问题答案: 您是否使用-g选项安装了模块?我认为并不是每个模块都打算在全球范围内安装,而是尝试为要创建的项目在本地安装(npm install),然后检查错误是否仍然存在。

  • 所以当我的终端显示我没有python时,我试图安装python,这很奇怪,因为我认为我有。当我试图找到它时,我找不到它,我使用如下命令: 当我试图删除python时(我正在尝试随机操作): 然后此错误将显示:操作无法完成。无法找到Java运行时。请访问http://www.java.com以获取有关安装Java的信息。 当我尝试用安装时 然后会抛出相同的Java错误。 更新:抱歉,我在macOS蒙

  • 我有一个很多人都有的错误,我认为我在这里找到了一个解决方案。本质上,它是说我的节点版本与node-sass版本不兼容。很多人都有同样的问题,所以我相信链接会有所帮助。然而,当我运行npm安装node-sass@4.14.1时,我得到了一个不同的错误。我知道这是一些简单的修复,但我找不到它!有人明白这是怎么回事吗?

  • 我需要在python中为学校安装PIL/Pillow模块,但是它一直给我一个错误,我不知道为什么(尤其是因为班上的其他人已经让它工作了)。我的实验室老师甚至帮不了我。这是我遇到的主要错误: ' ' '找不到jpeg的头文件或库文件,这是从源编译Pillow时所需的依赖项。''' 其余错误为: ''使用缓存的Pillow-8.3.2.tar.gz(48.8 MB)收集Pillow,使用Pillow的