Почему переменная среды не возвращает ничего в Linux?

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

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

vim ~/.bashrc  

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

Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin
[ 1111] затем :wq

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

echo $Test_MyVariable 

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

Tessst

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

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

Нет

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

1
задан 12 June 2019 в 16:28

2 ответа

Удалить пробел после Test_MyVariable

new_v= os.environ.get('Test_MyVariable ')
0
ответ дан 12 June 2019 в 16:28

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

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

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

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

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

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

0
ответ дан 12 June 2019 в 16:28

Другие вопросы по тегам:

Похожие вопросы: