2015-03-06 14 views
6

Я пытаюсь автоматизировать создание документации с помощью YUIDOC, но у меня есть серверная структура, которая сильно использует python, поэтому я пытаюсь автоматизировать все из сценария python. Я могу заставить команду узла работать нормально, но всякий раз, когда я пытаюсь что-то установить с помощью npm, python не устраивает. Мой проект использует Buildout вместо virtualenv, но в идеале я хотел бы просто запускать эти команды из автономного файла python.Выполнение команд npm с использованием подпроцесса 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 и НПМ материал живет в sys.path питона, но это не сработало.

ps, ​​это похоже на вопрос, связанный с this question.

ответ

8

Мне нужно было указать shell=True в check_call.

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

subprocess.check_call('yuidoc --help', shell=True) 
Смежные вопросы