UiPath Documentation
activities
latest
false
Actividades de desarrollador
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Problemas conocidos y limitaciones

Soluciones para problemas conocidos al ejecutar scripts de Python con el paquete de actividades de Python, incluidos problemas de hilo, ruta de archivo y conversión de tipo.

Merece la pena conocer los siguientes comportamientos al ejecutar scripts de Python con el paquete de actividades de Python. Cada uno incluye una solución alternativa.

Los scripts se ejecutan en un hilo en segundo plano​

Síntoma: un script falla con el siguiente error, normalmente al importar una biblioteca que instala controladores de señales, como xlwings u otro puente de Excel o GUI:

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

Causa: el código dentro de un ámbito de Python se ejecuta en un hilo de trabajo, no en el hilo principal del proceso, por lo que el código Python que requiere el hilo principal falla.

Acción: utiliza uno de los siguientes enfoques:

  • Da preferencia a las bibliotecas que no requieren el hilo principal, por ejemplo openpyxl o pandas en lugar de xlwings para leer y escribir archivos de Excel.
  • Ejecuta el código sensible al hilo principal en un proceso de Python independiente, iniciado con subprocess y apuntado a un ejecutable de Python real, como el devuelto por shutil.which("python3").

Dentro de la actividad, sys.executable apunta al proceso del host en lugar de a tu intérprete de Python, por lo que no es un destino válido para subprocess.

Las rutas de archivo relativas se resuelven en una carpeta inesperada​

Síntoma: una ruta relativa como open("data.csv") lee o escribe en una ubicación no deseada, y parece que falta el archivo.

Causa: cuando la propiedad CarpetaDeTrabajo no está establecida, el directorio de trabajo del script en ejecución es la propia carpeta de tiempo de ejecución de la actividad, no tu carpeta de proyecto.

Acción: utiliza uno de los siguientes enfoques:

  • Establece la propiedad CarpetaDeTrabajo de la actividad Ámbito de Python en la carpeta en la que debe ejecutarse tu script.
  • Llama os.chdir(...) al inicio de tu script.
  • Utiliza rutas absolutas para acceder a los archivos.

Obtener objeto de Python no puede convertir todos los tipos de Python​

Síntoma: la actividad Obtener objeto de Python falla con el siguiente error:

Get Python Object: Error converting Python object

Causa: la actividad convierte un valor devuelto de Python en un tipo.NET. Los objetos complejos o nativos de Python, por ejemplo, dict, list o pandas DataFrame, no siempre se pueden convertir.

Acción: devuelve una cadena de tu función Python y conviértela en tu flujo de trabajo:

  1. En Python, serializa el valor a JSON con json.dumps(...), o con df.to_json(orient="records") para un pandas DataFrame.
  2. Recupera el valor con Obtener objeto de Python como String.
  3. Deserialízalo en tu flujo de trabajo.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte(opens in new window)

¿Quiere aprender? UiPath Academy(opens in new window)

¿Tiene alguna pregunta? Foro de UiPath(opens in new window)

Manténgase actualizado