Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 24, 2008 17:44:55

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

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

По поводу консольных штучек-дрючек. В винде без проблем запускается:

cmd /k dir /B

Попозже проверю аналогичное в openSUSE.



Офлайн

#2 Ноя. 24, 2008 19:25:34

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

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

gmorgunov
Вот тут - “проверьте …” Т.е. ~ парсится неправильно.
Проверил на openSUSE - вроде правильно. Так что не понял…



Офлайн

#3 Ноя. 24, 2008 20:05:36

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

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

The gray Cardinal
gmorgunov
Вот тут - “проверьте …” Т.е. ~ парсится неправильно.
Проверил на openSUSE - вроде правильно. Так что не понял…
Проверяем для таблицы - “~/ExamplesShlee/chapter11/TableWidget/TableWidget”.
Получаем: “Не удалось запустить приложение … ”

Проверяем для таблицы- “/home/mike/ExamplesShlee/chapter11/TableWidget/TableWidget”.
Все нормально. Таблица открывается, редактируется. Закрываю окно таблицы - опять в QuickStarter2/console.
( запустить не выходить/запустить )
Проверил и из kate, и из console - 3 раза :)

Возьмите примерчик с путем подлиннее и позаковырестее. Может Ктхулхе ? :)



Офлайн

#4 Ноя. 24, 2008 21:33:28

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

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

gmorgunov
Проверяем для таблицы - “~/ExamplesShlee/chapter11/TableWidget/TableWidget”.
Получаем: “Не удалось запустить приложение … ”

Проверяем для таблицы- “/home/mike/ExamplesShlee/chapter11/TableWidget/TableWidget”.
Все нормально.
Так непонятно, отлаживать надо. Надо поставить в коде “print” для списка параметров непосредственно перед передачей его в Popen() и посмотреть, что там рождается. У меня на совершенно аналогичных примерах всё абсолютно нормально. Единственное - если путь к домашнему каталогу содержит пробелы, то была бяка (это я уже поправил, но это совсем не твой случай, это под виндой в основном актуально).



Офлайн

#5 Ноя. 24, 2008 21:48:37

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

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

С пробелами она(прога) просто не найдет файла. А кстати, это надо проверять.
Что у меня нет пробелов - это точно. Утром переименовал в беспробельные.
Что-то сморило, ложусь спать. Докуем завтра? :)



Офлайн

#6 Ноя. 24, 2008 23:49:59

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

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

gmorgunov
Докуем завтра?
Отличная мысль ;).
Немного исправленный вариант (защита от пробелов в “~”) здесь:
http://forum.script-coding.info/viewtopic.php?id=2489



Офлайн

#7 Ноя. 25, 2008 08:05:48

gmorgunov
От:
Зарегистрирован: 2008-10-15
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Привет.
Продолжаем ковать опенсорц. :D
QuickStarter3 скачал, проверил - все работает.
Но у меня родилась идея - запускать из QuickStarter-а все, что угодно. У каждого есть набор утилит/команд/программ,
которые он размещает на панельке и периодически пользуется.
Но панель не резиновая. Вот тут нам на помощь придет QuickStarter.
Проще пояснить на примере. Например я иногда пользуюсь kdevelop и своей утилитой findgrep.
findgrep - это просто команда(оформленная в /usr/bin/findgrep)
Например: find /home/mike -exec grep hello {} \; -print - выведет все строчки файлов, содержащие контекст
hello из моего дом. каталога и всех его подкаталогов. Полезная команда.
Так вот, помнить все эти полезные команды/программы - неудобно.Можно воспользоваться QuickStarter.

Итак тестируем:
- kdevelop - /opt/kde3/bin/kdevelop
- findgrep - “find /home/mike -exec grep hello {} \; -print”

Немного дорабатываем QuickStarter ( об этом говорили, забыли наверное)

#os.system(resList[0])                           # тоже работает
subprocess.Popen(resList,shell= True) # запуск
Проверяем. Все работает.
Причем работает даже по цепочке QuickStarter —> kdevelop —> QuickStarter —> findgrep.
Вот такая полезная штуковина. :)



Офлайн

#8 Ноя. 25, 2008 10:43:28

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Консольные команды можно запускать в текущей версии QuickStarter (без shell=True) по принципу:

gnome-terminal -x bash -c "ls -l;echo press ENTER to leave this place;read"



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version