2013-02-04 58 views
3

如何从python脚本安装npm包?如何从python脚本安装npm包?

当我使用subprocess.Popen(["node", "app.js"])OK
当我使用subprocess.Popen(["npm", "install", "open"])它是抛出一个错误

很抱歉,但谷歌和DuckDuckGo今天我的朋友都没有(

的主要问题 - 我的小工具,自动本地安装所需的软件包,因为全球的包不是在窗口工作

PS。我要问这个问题,因为我试图制定崇高文本2

插件这是误差在卓异蟒控制台

Reloading plugin …\stsync.py 
Traceback (most recent call last): 
    File ".\sublime_plugin.py", line 103, in create_application_commands 
    cmds.append(class_()) 
    File ".\stsync.py", line 16, in __init__ 
    File ".\subprocess.py", line 633, in __init__ 
    File ".\subprocess.py", line 842, in _execute_child 
WindowsError: [Error 2] 

线16:subprocess.Popen(["node", "npm", "install", "open"])


如果我将 16线改变为subprocess.Popen([ “节点”, “NPM”,“安装“,”打开“]) 然后python脚本将成功调用nodejs终端,但随后nodejs终端将失败并显示错误:
cannot find npm module
nodejs error

+0

什么错误?在命令窗口中输入npm是否有效? – wdavo

+0

@wdavo在终端节点和npm工作正常 –

+0

@wdavo我添加了一些问题 –

回答

2

设置shell参数设置为True

subprocess.Popen(["node", "npm", "install", "open"], shell=True) 
+0

除了使用shell = True还有其他选择吗?根据文档https://docs.python.org/2/library/subprocess.html#frequently-used-arguments,使用shell = True是安全隐患,并且强烈建议不要使用它。 – SaurabhM