Почему переменная окружения не возвращает ничего в Linux?

Почему переменная окружения не возвращает ничего в Linux?

В Windows, чтобы задать новую переменную = значение, мы можем просто добавить ее к переменной окружения. Однако в Linux это выглядит немного сложно. Вот процедура, которой я следовал:

Откройте Терминал и напишите:

vim ~/.bashrc  

затем нажмите клавишу «i» на клавиатуре и определите переменную следующим образом:

Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin

затем:wq

после $echo я вижу переменную:

echo $Test_MyVariable 

и он возвращает:

Тессст

но в моем возвышенном Тексте он возвращает None.

import os
new_v= os.environ.get('Test_MyVariable')
print(new_v)

Никто

Я даже проверил все доступные os.environ, но не могу найти свой Test_MyVariable. Более того, я также пробовал с ~/.bash_profileи ~/.profileи добавлял к ним переменную, но результат тот же. Может, подскажете, что я делаю не так?

решение1

Когда вы определяете переменную в ~/.bashrc, эта переменная будет присутствовать, как только ~/.bashrcбудет "sourced" (чтение). Это происходит только при запуске новой оболочки (например, при открытии нового терминала).

Итак, если вы добавите новую строку в свой .bashrcфайл, вам затем нужно будет открыть новый терминал и запустить там свой скрипт python. В качестве альтернативы вы можете запустить source ~/.bashrcего в исходный код текущей оболочки.

Итак, вы упомянули sublime, но не объяснили, почему это важно, поэтому я предположу, что вы каким-то образом запускаете свой скрипт python внутри редактора sublime. Предположительно, у него есть какой-то эмулятор оболочки. Если это так, то детали того, как и где определить переменную, будут зависеть от того, как sublime настраивает свою оболочку. Попробуйте следующее:

  1. Просто закройте окно Sublime, а затем откройте его снова и посмотрите, перечитало ли оно ваш .bashrc.

  2. Sublime вполне может .bashrcвообще не читать. Если вы запускаете sublime с какой-то кнопки GUI, вам, вероятно, придется выйти из системы и войти снова, прежде чем он сможет перечитать переменные.

  3. Попробуйте открыть новый терминал и запустить sublime(или как там называется команда для запуска sublime из командной строки). Увидит ли он переменную?

Связанный контент