No Windows, para definir uma nova variável = valor, podemos simplesmente adicioná-la à variável ambiental. No entanto, no Linux, parece um pouco difícil. este é o procedimento que segui:
Abra o Terminal e escreva:
vim ~/.bashrc
em seguida pressione o teclado "i" e defina a variável da seguinte forma:
Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin
então:wq
depois de $echo vejo a variável:
echo $Test_MyVariable
e retorna:
Tessst
mas no meu texto sublime ele retorna Nenhum.
import os
new_v= os.environ.get('Test_MyVariable')
print(new_v)
Nenhum
Até verifiquei todos os os.environ disponíveis, mas não consigo encontrar meu arquivo Test_MyVariable
. Além disso, também tentei com ~/.bash_profile
e ~/.profile
e adicionei variáveis a eles, mas o mesmo resultado. Poderia me dizer o que estou fazendo de errado?
Responder1
Quando você define uma variável em ~/.bashrc
, essa variável estará presente assim que ~/.bashrc
for "originada" (lida). Isso só acontece quando você inicia um novo shell (por exemplo, quando você abre um novo terminal).
Portanto, se você adicionar a nova linha ao seu .bashrc
arquivo, precisará abrir um novo terminal e executar seu script python lá. Alternativamente, você pode executar source ~/.bashrc
para colocá-lo no shell atual.
Agora, você menciona sublime, mas não explica por que isso é relevante, então presumo que você esteja executando seu script python dentro do editor sublime de alguma forma. Presumivelmente, ele possui algum tipo de emulador de shell. Se for esse o caso, então os detalhes de como e onde definir a variável dependerão de como o sublime configura seu shell. Experimente o seguinte:
Basta fechar a janela do sublime e abri-la novamente e ver se ele releu o seu arquivo
.bashrc
.Sublime poderia muito bem nem ler
.bashrc
. Se você estiver executando o sublime a partir de algum botão da GUI, provavelmente precisará sair e fazer login novamente antes de conseguir reler as variáveis.Tente abrir um novo terminal e executar
sublime
(ou qualquer que seja o nome do comando para iniciar o sublime na linha de comando). Ele vê a variável então?