python IPC (межпроцессное взаимодействие) для Vista UAC (контроль доступа пользователей)

Я пишу Filemanager на (wx) python - многое уже работает. При копировании файлов уже есть диалог выполнения, обработка перезаписи и т. Д.

Теперь в Vista, когда пользователь хочет скопировать файл в определенные каталоги (например,% Program Files%), приложению / сценарию требуется повышение прав, которое не может быть запрошено во время выполнения. Поэтому мне нужно запустить другое приложение / скрипт с повышенными правами, которое выполняет свою работу, но должно взаимодействовать с основным приложением, чтобы последнее могло обновлять прогресс и т. Д.

Я искал и нашел много статей, в которых говорится, что совместная память и каналы - самый простой способ. Итак, я ищу «высокоуровневую» платформо-независимую библиотеку ipc с привязками Python с использованием общей памяти или каналов.

Я уже нашел ominORB, fnorb и т. Д. Они выглядят очень интересно, но используют TCP / IP, есть ли эквивалентная библиотека с использованием разделяемой памяти или каналов? Поскольку ipc-client всегда находится на одной машине, в этом нет необходимости. И я также боюсь, что пользователю придется разрешить ipc-socket-communications на своем персональном брандмауэре.

РЕДАКТИРОВАТЬ: Я действительно имею в виду высокий уровень: было бы здорово иметь возможность просто вызывать некоторые функции, например, при использовании omniORB, вместо отправки строк в stdin / stdout.


person RSabet    schedule 24.01.2009    source источник


Ответы (1)


Как насчет того, чтобы просто общаться со вторым процессом с помощью stdin / stdout?

Есть некоторые предостережения из-за буферизации ввода и вывода, но обратите внимание на этот рецепт из Поваренной книги Python, а также Pexpect, чтобы узнать, как это сделать.

person dF.    schedule 24.01.2009
comment
спасибо, я отредактировал свой вопрос, чтобы подчеркнуть, что я хочу иметь возможность вызывать функцию, как с omniORB. - person RSabet; 24.01.2009