Não há como alterar as variáveis de ambiente de um processo filho. E existe exatamente a mesma pergunta em SO .
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?
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).