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

C:
chdir C:\cygwin\bin

bash --login -i
появляется командная строка bash и я пишу вот такую команду:
cd ~/project1 && make
Ну и выполняю её.
Но теперь мне нужно это сделать из моего Python приложения, например для прототипа при нажатии какой-то кнопки.
Я так понимаю, что нужно создать в python приложение процесс и далее уже запускать необходимую мне команду или нет? Как это сделать правильно?
Андрей Светлов
import subprocess
Goliath
Андрей Светлов
import subprocess
если честно я не очень хорошо понимаю как это сделать
Вот я запускаю следующий код:
p = subprocess.Popen( "C:\\cygwin\\bash.exe --login -i", shell = True, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE )
ничего не происходит

а как я потом смогу передать и выполнить ту, команду, которую мне нужно… ?
febos
А разве нельзя в строке команды вызвать в виде “процесс + скрипт” ? т.е. в вашем случае “C:\\cygwin\\bash.exe **скрипт**”. Вроде тогда выбранный скрипт выполнится программой баш.exe, насколько я понял, это и требуется. Я конечно могу ошибаться, но по-моему правильно.
Андрей Светлов
Goliath
у subprocess.Popen есть метод communicate
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB