Запуск процесса с Python Popen на Windows, который запускает другой процесс - PullRequest
0 голосов
/ 16 апреля 2020

Я пишу Python интерфейс для проприетарного инструмента отладки (инструмент A), который работает как оболочка для GDB на Windows 10. Этот инструмент запускает другой процесс (инструмент B) как часть его процедуры запуска. Он показывает кучу консольных сообщений и занимает около 2 с для запуска, большая часть которого ожидает подключения от инструмента B.

Я могу успешно запустить инструменты на обычной консоли Windows. Затем я взял аргументы, которые использовал на консоли, и передал их Попену. При запуске таким образом, инструмент немедленно ломается с ошибкой 10093.

Способ, которым инструмент A ломается при вызове с помощью Popen, говорит мне, что он пытается запустить инструмент B и как-то не работает. Это заставило меня задуматься, есть ли какое-то ограничение для процесса, который был запущен с Popen для запуска других процессов или открытых сокетов.

Я использую Python 3.7 32 бита на Windows 10.

Ошибка 10093 в Windows указывает на проблему с сокетами.

Я прочитал все документы Python в Popen и не могу найти причину сбоя. Кажется, что все аргументы были правильно расширены (Windows пути и обратные слэши).

Я не думаю, что это просто вопрос плохих аргументов командной строки. Используя обычную консоль, я попытался передать недопустимые аргументы, и сообщения об ошибках, которые я получаю, такие же, как и при попытке использовать те же неверные аргументы с Попеном.

Нужна ли какая-то специальная опция, например CREATE_NEW_CONSOLE?

Любая помощь очень ценится!

Спасибо!

...