2015-03-06 26 views
6

Próbuję zautomatyzować generowanie dokumentacji przy użyciu YUIDOC, ale mam strukturę po stronie serwera, która mocno korzysta z Pythona, więc staram się zautomatyzować wszystko od wewnątrz skryptu Pythona. Jestem w stanie uzyskać polecenie węzła, aby działało dobrze, ale gdy próbuję czegoś, co zainstalowałem używając npm, python nie jest zadowolony. Mój projekt używa Buildout zamiast virtualenv, ale najlepiej chciałbym móc uruchomić te polecenia z autonomicznego pliku Pythona.Uruchamiaj polecenia npm przy użyciu podprocesu Python

Być może jakiś kod pomogłoby wyjaśnić moją sytuację:

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 

Próbowałem już dodając folder gdzie yuidoc i rzeczy npm mieszka do sys.path z pytona, ale to nie działa.

ps, ​​to jest podobne pytanie do this question.

Odpowiedz

8

Musiałem określić shell=True w check_call.

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

subprocess.check_call('yuidoc --help', shell=True) 
Powiązane problemy