[Python 3.x] Exécution de scripts externes via GUI
Bonjour,
Après de nombreuses recherches sur le net, je n'ai pu trouver la solution répondant à mon problème.
Je suis en train de développer un outil (avec interface graphique) permettant de lancer des scripts python de projets différents.
Afin de ne pas avoir de problème de dépendances, je demande à l’utilisateur de cibler le répertoire du projet ainsi que le script qu'il souhaite lancer.
Pour développer cet outil j'ai donc dans mon IDE un projet "outil_benchmark" qui est le projet intégrant l'IHM, et un projet "projet_test" qui regroupe différents scripts de test à appeler. Evidemment, le but final est que l'outil soit compilé en exécutable et que donc le projet "outil_benchmark" disparaisse de l'IDE.
Dans mon arborescence "projet_test", j'ai:
projet_test
__init__.py
module_1
module_2
Pour être lancé, le "script_a_lancer.py" importe "import_particulier.py". "import_particulier.py" fait lui appel à de nombreux autres import présents dans "projet_test".
Lorsque l'utilisateur entre le répertoire du projet à utiliser, j'utilise
Code:
1 2 3 4 5
| sys.path.append('chemin/du/projet')
print (sys.path) #le lien a bien ete ajoute au PYTHONPATH
from module_sous_projet import * #les projets etant gros, j'ai besoin de tout importer en une seule fois
...
proc = subprocess.Popen(['python', 'script_a_lancer.py']) |
La lancement se fait, mais plante dès l'import de "import_particulier.py", me disant que ce module n’existe pas...
Pourtant, je vérifie bien plus haut que tout le projet fait parti du PYTHONPATH.
D'où ma question, ai-je oublié quelque chose ou ai-je mal manipulé le package sys ?
Je m'excuse par avance mais je ne peux pas recopier le code ici, il est sur un pc où toutes les sorties de documents sont bloquées par sécurité. Les lignes sont recopiées à la main.
Cordialement,
Poalcospe