Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 10, 2009 09:04:38

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

погуглил на эту тему, нашел 2 способа:

os.spawnl(os.P_NOWAIT,'command.cmd')
и
subprocess.Popen('command.cmd')
версиях 2.4 и 2.5 работают оба способа, а в 3.1 только через subprocess. При попытке применить spawnl вылазит радостное сообщение от микрософта: “python31.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.” Может его как-то по-другому применять надо?



Офлайн

#2 Сен. 10, 2009 10:14:15

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

Почему бы просто subprocess не использовать?



Офлайн

#3 Сен. 10, 2009 12:25:07

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

igor.kaist:Почему бы просто subprocess не использовать?
Ну так я и оставил его. Хотелось узнать просто, может я чего не понял в доках по os.spawn, раз ошибка вылазит…



Офлайн

#4 Сен. 10, 2009 22:08:55

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

баг в питоне.



Офлайн

#5 Сен. 11, 2009 05:47:42

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

Офлайн

#6 Сен. 11, 2009 07:21:03

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

bialix: баг в питоне.

Ну, я так и подумал в общем. Но до сих пор на такие баги не натыкался, вот и были сомнения.

Ещё вопрос (хотя, возможно, он уже не имеет отношения к питону).
Этот command.cmd запускает TheBat и пихает в него несколько писем в исходящие. И пока пользователь не закроет TheBat, окно консоли с текстом этого command.cmd торчит на экране. Можно ли это как-то победить?



Офлайн

#7 Сен. 11, 2009 15:15:20

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

my_script.pyw в место my_script.py пробывл ?

Офлайн

#8 Сен. 14, 2009 06:08:16

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

sypper-pit: my_script.pyw в место my_script.py пробывл ?

Дык так и работает. Сначала программа вообще без окон работает, работа заключается в формировании этого command.cmd. Ближе к концу выдаёт win32api.MessageBox для информации о проделанной работе, а затем этот command.cmd выполняет. Окно консоли вылазит уже после MessageBox.



Офлайн

#9 Сен. 14, 2009 08:15:32

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

Вопрос про торчащую консоль снимается, сам разобрался. Вначале отдельно запускаю TheBat, а уже потом command.cmd, тогда она правильно отрабатывает формирование писем и сразу закрывается.



Офлайн

#10 Ноя. 17, 2009 06:51:49

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

асинхронный запуск внешней программы

хелп, кода я подключаюсь к серверу через ssh, и запускаю прогу через os.spawnl или subprocess.Popen, прога работает ассинхронно, когда я в ssh делаю выход (exit), проиходит как бы отлогинивание но окно ssh весит не закрывается и в него валяться сообщения от запущенной программы, если я закрываю ssh клиент то запущеная прога умирает.

как сделать что-б она продолжала работать?

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version