1158 votes

Comment définir des variables d'environnement en Python

Je suis nouveau sur le python. J'ai quelques scripts j'ai hérité.

J'ai besoin de définir des variables d'environnement dans le script python et je veux que tous les autres scripts qui sont appelées à partir de python (scripts shell) qui sera l'enfant pour voir les variables d'environnement définies. La valeur est un nombre.

Si je n' os.environ["DEBUSSY"] = 1, elle se plaint en disant qu' 1 doit être une chaîne. Je veux aussi savoir comment faire pour lire les variables d'environnement en python (dans la dernière partie du script) une fois que je l'ai mis.

1443voto

Sven Marnach Points 133943

Les variables d'environnement doivent être des chaînes, utilisez donc

 os.environ["DEBUSSY"] = "1"
 

pour définir la variable DEBUSSY à la chaîne 1 . Pour accéder à cette variable ultérieurement, utilisez simplement

 print os.environ["DEBUSSY"]
 

Les processus enfants héritent automatiquement de l'environnement du processus parent - aucune action particulière de votre part n'est requise.

160voto

Mark Points 303

Vous devrez peut-être envisager d'autres aspects pour la robustesse du code;

lorsque vous stockez une variable de valeur entière en tant que variable d'environnement, essayez

 os.environ['DEBUSSY'] = str(myintvariable)
 

alors pour la récupération, considérez que pour éviter les erreurs, vous devriez essayer

 os.environ.get('DEBUSSY', 'Not Set')
 

remplacer éventuellement '-1' par 'Not Set'

alors, pour mettre tout cela ensemble

 myintvariable = 1
os.environ['DEBUSSY'] = str(myintvariable)
strauss = int(os.environ.get('STRAUSS', '-1'))
# NB KeyError <=> strauss = os.environ['STRAUSS']
debussy = int(os.environ.get('DEBUSSY', '-1'))

print "%s %u, %s %u" % ('Strauss', strauss, 'Debussy', debussy)
 

25voto

Jim Brissom Points 10282

Si je fais os.environ ["DEBUSSY"] = 1, il se plaint en disant que 1 doit être une chaîne.

Alors fais

 os.environ["DEBUSSY"] = "1"
 

Je veux aussi savoir comment lire les variables d'environnement dans python (dans la dernière partie du script) une fois que je l'ai configuré.

Utilisez simplement os.environ["DEBUSSY"] , comme dans

 some_value = os.environ["DEBUSSY"]
 

17voto

ThiefMaster Points 135805

Qu'en est-il de os.environ["DEBUSSY"] = '1' ? Les variables d'environnement sont toujours des chaînes.

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