UiPath Documentation
activities
latest
false
Atividades do desenvolvedor
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Problemas e Limitações Conhecidas

Soluções para problemas conhecidos ao executar scripts do Python com o pacote de atividades Python, incluindo thread, caminho do arquivo e problemas de conversão de tipo.

Vale a pena conhecer os comportamentos a seguir quando você executa scripts do Python com o pacote de atividades Python. Cada uma inclui uma solução alternativa.

Scripts executados em uma thread em segundo plano​

Problema: um script falha com o seguinte erro, normalmente ao importar uma biblioteca que instala manipuladores de sinal, como xlwings ou outra ponte do Excel ou GUI:

ValueError: set_wakeup_fd only works in main thread of the main interpreter

Causa: o código dentro de um escopo do Python é executado em uma thread de trabalho, não na thread principal do processo, portanto, o código do Python que requer a thread principal falha.

Ação: use uma das seguintes abordagens:

  • Prefira bibliotecas que não exigem o thread principal, por exemplo, openpyxl ou pandas em vez de xlwings para ler e escrever arquivos do Excel.
  • Execute o código principal sensível à thread em um processo Python separado, iniciado com subprocess e apontado para um executável do Python real, como o retornado por shutil.which("python3").

Dentro da atividade, sys.executable aponta para o processo do host em vez de para seu interpretador do Python, portanto, não é um destino válido para subprocess.

Caminhos de arquivo relativos resolvidos em relação a uma pasta inesperada​

Problema: um caminho relativo, como open("data.csv") lê ou grava em um local que você não pretendia, e o arquivo parece estar ausente.

Causa: quando a propriedade PastaDeTrabalho não está definida, o diretório de trabalho do script em execução é a própria pasta de runtime da atividade, não a sua pasta do projeto.

Ação: use uma das seguintes abordagens:

  • Defina a propriedade PastaDeTrabalho da atividade Python Scope como a pasta na qual seu script deve ser executado.
  • os.chdir(...) no início do seu script.
  • Use caminhos absolutos para acesso ao arquivo.

Obter objeto Python não pode converter todos os tipos Python​

Problema: a atividade Get Python Object falha com o seguinte erro:

Get Python Object: Error converting Python object

Causa: a atividade converte um valor de retorno do Python em um tipo.NET. Objetos Python complexos ou nativos, por exemplo, um dict, um list, ou um unificado DataFrame de Pandas, nem sempre podem ser convertidos.

Ação: retorne uma string da sua função do Python e converta-a em seu fluxo de trabalho:

  1. Em Python, serialize o valor para JSON com json.dumps(...), ou com df.to_json(orient="records") para um Pandas DataFrame.
  2. Recupere o valor com Get Python Object como String.
  3. Deserialize-o em seu fluxo de trabalho.

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte(opens in new window)

Quer aprender? Academia UiPath(opens in new window)

Tem perguntas? Fórum do UiPath(opens in new window)

Fique por dentro das novidades