使用Python子进程运行npm命令

时间:2015-03-06 01:43:11

标签: python node.js npm yuidoc

我试图使用YUIDOC自动生成文档,但我有一个大量使用python的服务器端框架,所以我试图在python脚本中自动化所有内容。我能够让node命令运行正常,但每当我尝试使用npm安装的东西时,python并不高兴。我的项目使用Buildout而不是virtualenv,但理想情况下我希望能够从独立的python文件中运行这些命令。

也许一些代码可以帮助解释我的情况:

import subprocess
subprocess.check_call('node --help')

#SUCCESS

import subprocess
subprocess.check_call('npm --help')

#FAIL
#WindowsError: [Error 2] The system cannot find the file specified

import subprocess
subprocess.check_call('yuidoc --help')

#FAIL
#WindowsError: [Error 2] The system cannot find the file specified

我已经尝试将yuidoc和npm内容所在的文件夹添加到python的sys.path中,但是没有用。

ps,这与this question类似。

1 个答案:

答案 0 :(得分:12)

我需要在check_call中指定shell=True

subprocess.check_call('npm --help', shell=True)

subprocess.check_call('yuidoc --help', shell=True)