PYTHON

Всем привет! Возникает проблема, когда я пытаюсь запустить файл в UiPath с помощью файла Python: сначала он работает без проблем, но в определённый момент выполнения перестаёт работать и зависает. Однако, когда я останавливаю процесс в UiPath, файл Python продолжает выполняться, словно по волшебству, и завершает работу. Но для этого мне приходится останавливать процесс в UiPath.

Знаете, почему так может происходить?

Hi, @andros_torres_aranda

UiPath Python freezes coz it spawns a separate python.exe process that doesn’t stop with UiPath.

When you hit stop, UiPath kills its part but Python keeps chugging in background till done.

Quick fix: Kill lingering python.exe in Task Manager before run > Test script alone in cmd/PyCharm first > Use Load Python Script + Invoke Method (not direct file) > Add prints/try-catch in Python to spot hangs > Wrap in Try Catch + Terminate Workflow. Update UiPath.Python.Activities package too.

Привет, @andros_torres_aranda!

UiPath зависает, потому что запускает Python как отдельный процесс python.exe. Если скрипт блокируется или выводит большой объём данных, UiPath бесконечно ждёт, а python.exe продолжает работать в фоновом режиме. Когда вы нажимаете «Остановить», UiPath останавливается, но Python продолжает работать и нормально завершается.

Исправить это можно так: использовать Load Script + Invoke Method, уменьшить объём возвращаемых данных, добавить журналы в Python, обновить пакет Python и завершать оставшиеся процессы python.exe перед повторным запуском.

Если это помогло решить проблему, отметьте ответ как решение, чтобы он помог и другим.

Привет, @andros_torres_aranda!

Это происходит потому, что UiPath ожидает ответа от Python, но ваш скрипт Python продолжает работать в фоновом режиме, и UiPath считает, что он «завис».

Попробуйте сделать следующее:

Добавьте это в начало скрипта.

import sys
sys.stdout = open(sys.devnull, ‘w’)

Кроме того, всегда возвращайте что-нибудь из метода.

Вызывайте его с помощью:

  • Python Scope
  • Load Script
  • Invoke Python Method: main

И наконец, НЕ используйте Run Python Script для длительных процессов

Вместо этого поместите весь код в функцию и вызовите её с помощью Invoke Python Method.

@andros_torres_aranda

Когда вы говорите, что UiPath зависает, он переходит в состояние «Не отвечает» или просто продолжает работать?

Если продолжает работать, возможно, Python всё ещё выполняется и это большой скрипт.

Если не отвечает, возможно, высокая загрузка ЦП из-за одновременной работы UiPath и Python.

Если завершить UiPath, Python не остановится, потому что это отдельные процессы.

Всего доброго