运行 npm 命令使用 Python 子进程

Run npm commands using Python subprocess

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

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

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 类似的问题。

我需要在 check_call 中指定 shell=True

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

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