web-dev-qa-db-fra.com

Comment pouvons-nous changer la variable d'environnement linux en python?

Disons que nous sommes sur une ligne de commande et que nous déclarons une variable d'environnement:

export x=100

Quand je vais à python et que je tape:

os.environ['x'] = '100000'

Si je suis revenu à la ligne de commande, x reste 100. Est-il possible de changer cette variable dans python?

3
Mero

Il n'y a aucun moyen de changer les variables d'environnement à partir d'un processus enfant. Et il y a exactement la même question sur SO .

6
falconer

Il existe une solution de contournement à ce que vous souhaitez réaliser. En supposant que vous utilisiez bash comme shell, vous pouvez écrire les modifications dans les fichiers d’initialisation de bash (j’ai choisi ~/.bashrc):

#!/usr/bin/python
import os
os.system('bash -c \'echo "export a=100000" >> ~/.bashrc\'')
os.system('bash -c \'source ~/.bashrc\'')

Vous devez préfixer bash -c, car python utilise sh comme shell par défaut.


Idée dérivée de ne question similaire sur SO (différente de celle falconer posté).

1
jobin