Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 22, 2011 14:41:17

Goliath
От:
Зарегистрирован: 2011-09-22
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск Cygwin из python приложения и последующее выполнение команд

У меня установлена программа Cygwin (UNIX-подобная среда и интерфейс командной строки для Microsoft Windows). Мне необходимо из моего python приложения скомпилировать некий исходный код под Linux.
Т.е. грубо говоря в обычной жизни я делаю следующее. Запускаю Cywgin и помощью вот такого bat-файла:

@echo off

C:
chdir C:\cygwin\bin

bash --login -i
появляется командная строка bash и я пишу вот такую команду:
cd ~/project1 && make
Ну и выполняю её.
Но теперь мне нужно это сделать из моего Python приложения, например для прототипа при нажатии какой-то кнопки.
Я так понимаю, что нужно создать в python приложение процесс и далее уже запускать необходимую мне команду или нет? Как это сделать правильно?



Офлайн

#2 Сен. 22, 2011 14:55:00

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Запуск Cygwin из python приложения и последующее выполнение команд

import subprocess



Офлайн

#3 Сен. 22, 2011 15:52:38

Goliath
От:
Зарегистрирован: 2011-09-22
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск Cygwin из python приложения и последующее выполнение команд

Андрей Светлов
import subprocess
если честно я не очень хорошо понимаю как это сделать
Вот я запускаю следующий код:
p = subprocess.Popen( "C:\\cygwin\\bash.exe --login -i", shell = True, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE )
ничего не происходит

а как я потом смогу передать и выполнить ту, команду, которую мне нужно… ?



Офлайн

#4 Сен. 22, 2011 17:10:05

febos
От:
Зарегистрирован: 2011-07-31
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск Cygwin из python приложения и последующее выполнение команд

А разве нельзя в строке команды вызвать в виде “процесс + скрипт” ? т.е. в вашем случае “C:\\cygwin\\bash.exe **скрипт**”. Вроде тогда выбранный скрипт выполнится программой баш.exe, насколько я понял, это и требуется. Я конечно могу ошибаться, но по-моему правильно.



Отредактировано (Сен. 22, 2011 17:12:10)

Офлайн

#5 Сен. 22, 2011 21:10:40

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Запуск Cygwin из python приложения и последующее выполнение команд

Goliath
у subprocess.Popen есть метод communicate



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version