15

我正在尝试使用 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类似的问题。

4

1 回答 1

23

我需要shell=True在 check_call 中指定。

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

subprocess.check_call('yuidoc --help', shell=True)
于 2015-03-06T16:53:56.483 回答