я установить некоторые переменные окружения в ~/.profile
:Чтение переменных среды в Python
SOMEVAR=/some/custom/path
и уже сделал source ~/.profile
. Так что, когда я делаю:
echo $SOMEVAR
печатает правильный каталог:
/some/custom/path
Однако, когда я пытаюсь прочитать эту переменную в скрипте Python, он не:
import os
print(os.environ["SOMEVAR"])
I получить:
Traceback (most recent call last):
File "environment_test.py", line 3, in <module>
print os.environ["SOMEVAR"]
File "/usr/lib64/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'SOMEVAR'
W Там что-то не так?
в '~/.profile'? Но почему тогда работает 'echo $ SOMEVAR'? – daniel451
Переменная присутствует в вашей оболочке (процесс, полученный из .profile), но не экспортируется в дочерние процессы (ваш скрипт python). –
Замечательно, спасибо за объяснение! Я добавил «экспорт», и теперь он работает :) – daniel451