4 votes

Comment recharger les variables d'environnement en Python ?

J'ai mis en place un systemctl (Jupyter) dans le cadre de l'amorçage d'un cluster Hadoop. Une fois les actions de bootstrap terminées, Hadoop est installé. Pendant cette étape, un certain nombre de variables d'environnement sont définies - et celles-ci sont vitales pour mon service, Jupyter. Le problème est que Jupyter ne connaît pas ces variables d'environnement, car il est lancé plus tôt dans le processus.

Ma question : comment puis-je recharger les variables d'environnement pour mon utilisateur ? Au moment où l'utilisateur exécute Jupyter, toutes les variables d'environnement sont connues - j'ai juste besoin de les charger dans l'interpréteur Python.

Cela échoue dans l'ordinateur portable : os.environ['JAVA_HOME'] mais fonctionne bien dans l'interpréteur (parce que JAVA_HOME a été défini après le démarrage de Jupyter).

3voto

LhasaDad Points 734

Les variables d'environnement sont locales à un processus lorsqu'il démarre et héritées du processus parent. Je pense que vous ne pourrez pas les définir depuis l'extérieur de ce processus. Vous pouvez les définir dans ce processus, mais vous devrez établir un moyen de les transmettre. (par exemple, les mettre dans un fichier et faire en sorte que quelque chose sur un thread les lise périodiquement et les définisse localement dans ce processus).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X