EXEC_EXTERNAL_PY : exécuter un script python externe

L'utilisation et la création des scripts.
Répondre
Dekelver Pieter-Jan
Messages : 168
Enregistré le : 04 mars 2021, 15:23

EXEC_EXTERNAL_PY : exécuter un script python externe

Message par Dekelver Pieter-Jan »

Cher,

J'ai un problème pour exécuter une fonction de script py. Si je vais sous Windows via cmd à l'endroit où se trouve le fichier py et que se trouvent plusieurs fichiers txt, le script Python fonctionne.
Mais lorsque j'utilise la fonction script python, j'ai un problème. Je ne vois pas vraiment quel est le problème car l'écran disparaît très rapidement.

viewtopic.php?t=2959

Je soupçonne donc que le problème est que Python ne trouve pas les autres fichiers du répertoire courant.
Une idée?
Marc DELDEM
Messages : 1278
Enregistré le : 20 juin 2009, 01:01

Re: EXEC_EXTERNAL_PY : exécuter un script python externe

Message par Marc DELDEM »

Bonsoir,

Tu utilises des arguments pour l'appel de EXEC_EXTERNAL_PY ? Si oui lesquels ?
Si tu fais un CMD depuis le répertoire contenant ton script PRISM et que tu appelles ton script Python avec les mêmes arguments, il se passe quoi ?

Marc
Dekelver Pieter-Jan
Messages : 168
Enregistré le : 04 mars 2021, 15:23

Re: EXEC_EXTERNAL_PY : exécuter un script python externe

Message par Dekelver Pieter-Jan »

Merci,

Voici le code que j'utilise :

Code : Tout sélectionner

PyCANAOP$="C:\OBSDATA_OBS1\CANAOP\CANAOP_PLANNER_M09.py"
sArguments$=""

EXEC_EXTERNAL_PY PyCANAOP$ sArguments$
Je n'utilise pas d'arguments. Je n'ai trouvé aucune information supplémentaire sur la façon d'implémenter cet implant de script Python.
Je vais dans le dossier via CMD et j'y ouvre le script Python.Je peux exécuter ce fichier BAT via prism.

Voici le contenu du fichier BAT :

Code : Tout sélectionner

cd C:\OBSDATA_OBS1\CANAOP
python "CANAOP_PLANNER_M09.py"
Et là, je n'ai aucun problème. Cependant, je ne sais pas quelle erreur j'obtiens si je l'exécute directement. L'écran s'éloigne immédiatement.

Merci.
Marc DELDEM
Messages : 1278
Enregistré le : 20 juin 2009, 01:01

Re: EXEC_EXTERNAL_PY : exécuter un script python externe

Message par Marc DELDEM »

Je découvre cette fonction EXEC_EXTERNAL_PY
Mais je me demande s'il n'y a pas un problème.

J'ai ce script python:

Code : Tout sélectionner

import os
import time

# retrieve current directory path
path = os.getcwd()
print("Current directory path is : " + path)
# retrieve current directory name
dirname = os.path.basename(path)
print("Current directory name is : " + dirname)

# wait some time
time_duration = 10
time.sleep(time_duration)
Et j'ai ce script Prism:

Code : Tout sélectionner

PythonScriptFilename$="E:\Python\Test\script.py"
sArguments$=""

EXEC_EXTERNAL_PY PythonScriptFilename$ sArguments$
Le problème c'est que l'exécution du script Prism ouvre cette fenêtre:
Image
Et le script Prism s'arrête ensuite avant même que je puisse interagir avec la fenêtre ouverte.

Pourtant si je lance depuis une console le script Python (ici une console Windows PowerShell):
PS E:\Python\Test> python .\script.py
Current directory path is : E:\Python\Test
Current directory name is : Test
PS E:\Python\Test>
Alors je suis un peu surpris. Si la fonction EXEC_EXTERNAL_PY est sensée rendre la main quand le script Python se finit, je ne comprends pas bien ce qu'il se passe.

Une solution alternative:
Tu fais un fichier batch et tu le lances avec EXECPROCESS.
Le problème c'est que tu dois créer un mécanisme dans le script Prism pour savoir si l'exécution de ton batch est terminée ou pas.

Marc
Répondre