Сегодня я столкнулся со странной проблемой, возможно, это проблема с командной строкой Windows, но интересно, сталкивался ли кто-нибудь с этой проблемой раньше. Я получаю некоторую информацию с сайта поставщика, используя Selenium и webdriver-manager. Я проследил стек до функции subprocess.Popen().communicate(), точнее, до строки 1196 файла subprocess.py (python v 3.12.2 32bit), пытающейся выполнить stdout.read() . Кажется, возникла проблема с чтением стандарта, он зависает (без ошибок, просто продолжает работать) на этой строке. Я запустил код изнутри PowerShell (в отличие от VS Code, который, похоже, использует CMD), и он сработал. Если я не использую stdout=subprocess.PIPE, он печатает CMD (результатом команды в webdriver-manager является cmd = "(dir 2>&1 *`|echo CMD);&echo powershell") и не выдает ошибок, но, очевидно, это не так уж и полезно, кроме знания того, что CMD запускает команду, просто не выдавая стандартный стандарт. Я пробовал и другие команды, но безуспешно.
Одна из самых странных вещей заключается в том, что в течение как минимум года он работал нормально ежедневно, а затем внезапно возникла эта проблема. Я попробовал тот же код на другой машине, и он работает как положено, но его нужно запускать на машине автоматизации. Это машина с Windows 10... Я бы не стал этого делать, если бы мне не пришлось, но устаревшая программа, которую я автоматизирую, работает только на настольных компьютерах с Windows.
Я бы переопределил библиотека, но он также использует подпроцесс, чтобы установить текущую версию Chrome и использовать правильный драйвер. Я пытался несколько часов и зашел в тупик.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-stdout
Подпроцесс Python.Popen().communicate() зависает при чтении стандартного вывода ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Подпроцесс Python.Popen().communicate() зависает при чтении стандартного вывода [закрыто]
Anonymous » » в форуме Python - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-