UiPath Documentation
activities
latest
false
Activités du développeur.
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Problèmes connus et limitations

Solutions aux problèmes connus lors de l'exécution de scripts Python avec le package d'activités Python, y compris les problèmes de fil de discussion, de chemin de fichier et de conversion de type.

Il est important de connaître les comportements suivants lorsque vous exécutez des scripts Python avec le package d’activités Python. Chacun inclut une solution de contournement.

Les scripts s'exécutent sur un fil de discussion en arrière-plan​

Schéma: un script échoue avec l'erreur suivante, généralement lors de l'importation d'une bibliothèque qui installe des gestionnaires de signaux, telle que xlwings ou un autre pont Excel ou GUI:

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

Cause: le code à l'intérieur d'une étendue Python s'exécute sur un fil de travail, et non sur le fil principal du processus, de sorte que le code Python qui nécessite le fil principal échoue.

Action: utilisez l'une des approches suivantes:

  • Préférez les bibliothèques qui ne nécessitent pas le fil principal, par exemple openpyxl ou pandas au lieu de xlwings pour lire et écrire des fichiers Excel.
  • Exécutez le code sensible au fil de discussion principal dans un processus Python distinct, lancé avec subprocess et pointé vers un exécutable Python réel, tel que celui renvoyé par shutil.which("python3")

À l'intérieur de l'activité, sys.executable pointe vers le processus hôte plutôt que vers votre interprète Python, ce n'est donc pas une cible valide pour subprocess.

Les chemins de fichiers relatifs se résolvent par rapport à un dossier inattendu​

Schéma: un chemin relatif tel que open("data.csv") lit ou écrit vers un emplacement que vous n'aviez pas prévu, et le fichier semble être manquant.

Cause: lorsque la propriété DossierTravail n'est pas définie, le répertoire de travail du script en cours d'exécution est le propre dossier de runtime de l'activité, et non votre dossier de projet.

Action: utilisez l'une des approches suivantes:

  • Définissez la propriété DossierTravail de l'activité Étendue Python sur le dossier dans lequel votre script doit s'exécuter.
  • Appelez os.chdir(...) au début de votre script.
  • Utilisez des chemins absolus pour accéder aux fichiers.

Get Python Object ne peut pas convertir chaque type Python​

Problème: l’activité Obtenir l’objet Python échoue avec l’erreur suivante:

Get Python Object: Error converting Python object

Cause: l’activité convertit une valeur de retour Python en type.NET. Les objets Python complexes ou natifs, par exemple un dict, un list ou un fournisseur DataFrame, ne peuvent pas toujours être convertis.

Action: renvoyez une chaîne de votre fonction Python et convertissez-la dans votre workflow:

  1. En Python, sérialisez la valeur en JSON avec json.dumps(...), ou avec df.to_json(orient="records") pour un chat DataFrame.
  2. Récupérez la valeur avec Obtenir l'objet Python en tant que String.
  3. Désérialisez-le dans votre workflow.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour