我试图使用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类似。
答案 0 :(得分:12)
我需要在check_call中指定shell=True
。
subprocess.check_call('npm --help', shell=True)
subprocess.check_call('yuidoc --help', shell=True)