2015-03-06 31 views
6

Tôi đang cố gắng tự động hóa việc tạo tài liệu bằng YUIDOC, nhưng tôi có một khung bên máy chủ sử dụng rất nhiều python, vì vậy tôi đang cố gắng tự động hoá mọi thứ từ bên trong một kịch bản python. Tôi có thể nhận được các nút lệnh để chạy tốt, nhưng bất cứ khi nào tôi thử một cái gì đó tôi cài đặt bằng cách sử dụng npm, python không phải là hạnh phúc. Dự án của tôi sử dụng Buildout thay vì virtualenv, nhưng lý tưởng là tôi muốn có thể chạy các lệnh này từ một tệp python độc lập.Chạy các lệnh npm bằng cách sử dụng Python subprocess

Có lẽ một số mã sẽ giúp giải thích hoàn cảnh của tôi:

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 

Tôi đã thử thêm các folder nơi yuidoc và NPM thứ sống đến sys.path của trăn, nhưng điều đó không làm việc.

ps, ​​đây là một câu hỏi tương tự như this question.

Trả lời

8

Tôi cần chỉ định shell=True trong check_call.

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

subprocess.check_call('yuidoc --help', shell=True) 
Các vấn đề liên quan