J'ai un script principal qui exécute plusieurs scripts enfants dans les sous-dossiers du répertoire principal.
La hiérarchie des dossiers ressemble à ceci :
MyFolder\MasterScript.py
MyFolder\ChildOneScript\ChildOne.py
MyFolder\ChildTwoScript\ChildTwo.py
MyFolder\ChildThreeScript\ChildThree.py
Dans MasterScript, j'ai besoin d'appeler une fonction dans ChildOne "myChildFunction" et de lui passer quelques variables. Le problème est que je ne peux pas simplement faire
import ChildOneScript.ChildOne as ChildOne
ChildOne.myChildFunction
parce qu'il y a d'autres scripts qui dépendent du chemin relatif de ChildOne. Donc, si j'importe ChildOne dans le répertoire MyFolder depuis MasterScript et que j'appelle myChildFunction là-bas, j'obtiens des erreurs de traçage indiquant que d'autres fichiers ne peuvent pas être trouvés. Cela est dû aux erreurs d'un autre programmeur têtu qui refuse de modifier ses appels de chemin relatif, car c'est beaucoup de travail manuel.
Alors, est-il possible d'appeler myChildFunction depuis MasterScript et de lui passer des variables ?
Je sais que je peux utiliser subprocess.call et son argument cwd pour changer le répertoire de travail, mais je n'arrive pas à savoir s'il est possible d'appeler la fonction spécifique myChildFunction et de lui passer des variables en utilisant subprocess.
Modifier: Est-il possible de passer des variables en utilisant execfile ?