Como podemos mudar a variável de ambiente do Linux em python?

2

Digamos que estamos em uma linha de comando e declaramos uma variável de ambiente:

export x=100

Quando eu vou para python e digito:

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

Se eu voltar para a linha de comando x fica 100 . Existe alguma maneira de alterar essa variável em python?

    
por Mero 12.12.2013 / 11:26

2 respostas

5

Não há como alterar as variáveis de ambiente de um processo filho. E existe exatamente a mesma pergunta em SO .

    
por falconer 12.12.2013 / 11:39
1

Existe uma solução alternativa para o que você deseja alcançar. Supondo que você use o bash como seu shell, você pode escrever as mudanças nos arquivos de inicialização do bash (eu escolhi ~/.bashrc ):

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

Você precisa prefixar bash -c , pois o python usa sh como o shell padrão.

Idéia derivada de uma pergunta semelhante sobre SO ( diferente do falconer postado).

    
por jobin 12.12.2013 / 12:06