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?
EXEC_EXTERNAL_PY : exécuter un script python externe
-
- Messages : 168
- Enregistré le : 04 mars 2021, 15:23
-
- Messages : 1278
- Enregistré le : 20 juin 2009, 01:01
Re: EXEC_EXTERNAL_PY : exécuter un script python externe
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
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
-
- Messages : 168
- Enregistré le : 04 mars 2021, 15:23
Re: EXEC_EXTERNAL_PY : exécuter un script python externe
Merci,
Voici le code que j'utilise :
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 :
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.
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 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"
Merci.
-
- Messages : 1278
- Enregistré le : 20 juin 2009, 01:01
Re: EXEC_EXTERNAL_PY : exécuter un script python externe
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:
Et j'ai ce script Prism:
Le problème c'est que l'exécution du script Prism ouvre cette fenêtre:
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):
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
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)
Code : Tout sélectionner
PythonScriptFilename$="E:\Python\Test\script.py"
sArguments$=""
EXEC_EXTERNAL_PY PythonScriptFilename$ sArguments$
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):
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.PS E:\Python\Test> python .\script.py
Current directory path is : E:\Python\Test
Current directory name is : Test
PS E:\Python\Test>
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