以sudo用户身份安装软件包时出现npm错误消息

时间:2019-01-21 13:09:33

标签: node.js express ubuntu npm nvm

我正在尝试通过npm在节点(nodejs)中安装express。我是用户'kev',该用户是sudo。我不能使用sudo命令安装任何东西,因为出于某种奇怪的原因,当我'sudo npm'时根本找不到npm。我尝试添加符号链接,但是sudo'ing仍然拒绝找到npm。因此,以标准用户身份运行并尝试使用npm安装express时,出现以下错误:

import tkinter as tk
from pandastable import Table, TableModel
import pandas as pd

    class test_gui():

        def __init__(self):
            self.root = tk.Tk()
            LF3 = tk.LabelFrame(self.root, text='Output')
            LF3.grid(column=2, row=0, padx=(4,4), pady=4, sticky="nsew")  

            def tableSelChange(*args):
                df1 = pd.DataFrame([[1,2,3],['what', 'is', 'this'],[123, 123, 123]], 
                                   columns=['This', 'is', 'a Test'])
                df2 = pd.DataFrame([['bruh', 'this', 'is a gui'],[1235, 1235, 1235],[123, 123, 123]], 
                                    columns=['This', 'is', 'a Test2'])

                if tableSelVar.get() == 'One':
                    print('ONE')
                    self.curTable = df1
                elif tableSelVar.get() == 'Two':
                    print('Two')
                    self.curTable = df2
                #self.dfTbl.redraw()
                #dfTbl.tableChanged()
                dfTbl.redraw()

            tableSelVar = tk.StringVar(LF3)
            tableSelVar.set('No tables available')

            tableSelMenu = tk.OptionMenu(LF3, tableSelVar, 'One', 'Two')
            tableSelMenu.pack()

            df1 = pd.DataFrame([[1,2,3],['what', 'is', 'this'],[123, 123, 123]], 
                               columns=['This', 'is', 'a Test'])
            df2 = pd.DataFrame([['bruh', 'this', 'is a gui'],[1235, 1235, 1235],[123, 123, 123]], 
                                columns=['This', 'is', 'a Test2'])

            self.curTable = df1

            LLF31 = tk.LabelFrame(LF3, text='Table editor')
            LLF31.pack()
            dfTbl = Table(LLF31, dataframe=self.curTable, showtoolbar=True, showstatusbar=True)
            dfTbl.show()

            tableSelVar.trace('w', tableSelChange)

            self.root.mainloop()

    if __name__ == '__main__':
        t = test_gui()

我不知道错误是什么意思,只是在我看来这可能是由于我没有升级到使用nvm进行安装的sudo。有人有什么建议吗?这是我第一次使用node / nvm安装express,我正在遵循一些有关如何执行此操作的最新指南,但是这些指南只是说要使用“ nvm install express”,并且应该可以使用。顺便说一下,我已经安装了git,但这就是为什么它抱怨存储库吗?

1 个答案:

答案 0 :(得分:1)

NPM是一个程序包管理器,顾名思义,它适用于程序包。包基本上是一个包含package.json文件的文件夹或存储库,其中包含有关该包的所有元数据。该文件丢失,因为错误告诉您:

ENOENT: no such file or directory, open '/home/kev/package.json'

那很好,它仍然应该安装该软件包,请检查./node_modules文件夹。但是,建议您自己使用npm init初始化一个nodejs程序包,这将询问您一些有关要编写的程序包的问题。之后,npm install --save express安装express 并将依赖项保存在您自己的package.json文件中,因此下次您只需npm install,npm就会很高兴地安装您自己的package.json文件中列出的所有依赖项。

以下是关于package.json是什么以及它包含的信息的更多文档:https://docs.npmjs.com/files/package.json