В 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 настраивает свою оболочку. Попробуйте следующее:
Просто закройте окно Sublime, а затем откройте его снова и посмотрите, перечитало ли оно ваш
.bashrc
.Sublime вполне может
.bashrc
вообще не читать. Если вы запускаете sublime с какой-то кнопки GUI, вам, вероятно, придется выйти из системы и войти снова, прежде чем он сможет перечитать переменные.Попробуйте открыть новый терминал и запустить
sublime
(или как там называется команда для запуска sublime из командной строки). Увидит ли он переменную?