Автор оригинала: Pankaj Kumar.
Мы можем установить переменную среды в Python, используя ОС модуль Отказ Модуль Python OS окружающая среда Работает как Словарь Это содержит переменные среды, доступные для программы в этот момент.
Печать текущих переменных среды
Мы можем распечатать переменную OS.environ, чтобы узнать о существующих переменных средах, которые доступны для программы.
import os # current environment variables print(os.environ)
Выход:
environ({'PATH': '/Library/PostgreSQL/10/bin:/Users/pankaj/Downloads/mongodb/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Users/pankaj/Downloads/apache-maven-3.5.3/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', 'COMMAND_MODE': 'unix2003', 'MAVEN_OPTS': '-Xmx2048m -XX:MaxPermSize=128m', 'VERSIONER_PYTHON_VERSION': '2.7', 'LOGNAME': 'pankaj', 'XPC_SERVICE_NAME': 'com.apple.xpc.launchd.oneshot.0x10000003.pycharm', 'PWD': '/Users/pankaj/Documents/github/journaldev/Python-3/basic_examples', 'PYCHARM_HOSTED': '1', 'PYTHONPATH': '/Users/pankaj/Documents/github/journaldev/Python-3', 'SHELL': '/bin/zsh', 'PAGER': 'less', 'LSCOLORS': 'Gxfxcxdxbxegedabagacad', 'PYTHONIOENCODING': 'UTF-8', 'SECURITYSESSIONID': '186a8', 'OLDPWD': '/Applications/PyCharm CE.app/Contents/bin', 'VERSIONER_PYTHON_PREFER_32_BIT': 'no', 'USER': 'pankaj', 'ZSH': '/Users/pankaj/.oh-my-zsh', 'TMPDIR': '/var/folders/1t/sx2jbcl534z88byy78_36ykr0000gn/T/', 'SSH_AUTH_SOCK': '/private/tmp/com.apple.launchd.1o59WVsq9I/Listeners', 'XPC_FLAGS': '0x0', 'PYTHONUNBUFFERED': '1', 'M2_HOME': '/Users/pankaj/Downloads/apache-maven-3.5.3', '__CF_USER_TEXT_ENCODING': '0x1F5:0x0:0x0', 'Apple_PubSub_Socket_Render': '/private/tmp/com.apple.launchd.U1NEZUKVjH/Render', 'LESS': '-R', 'LC_CTYPE': 'UTF-8', 'HOME': '/Users/pankaj', '__PYVENV_LAUNCHER__': '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7'})
Проверьте, существует ли переменная среды или нет?
Мы можем проверить, существует ли переменная среды или не используя в утверждение.
if 'HOME' in os.environ:
print('HOME environment variable is already defined. Value =', os.environ['HOME'])
else:
print('HOME environment variable is not defined.')
Выход:
HOME environment variable is already defined. Value = /Users/pankaj
Изменение значения переменного окружения может иметь серьезные последствия для выполнения программы. Следовательно, целесообразно сначала проверять, существует ли переменная среды или нет. Тогда это зависит от вас, хотите ли вы изменять значение или нет. Вы всегда можете определить новую переменную среды и использовать ее в вашей программе.
Python Set Переменная среды
Мы можем установить переменную среды, как мы устанавливаем значения в словаре.
os.environ['MYSQL_VERSION'] = '5.7.18'
Обратите внимание, что пара вариабельной пары ключа среды должна быть строкой, в противном случае ошибка будет поднята.
>>> os.environ['Data'] = 123 Traceback (most recent call last): File "", line 1, in File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py", line 683, in __setitem__ value = self.encodevalue(value) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py", line 753, in encode raise TypeError("str expected, not %s" % type(value).__name__) TypeError: str expected, not int >>>
Python Read Read Erunds Viracle
Давайте посмотрим, как прочитать переменную среды, которую мы установили в приведенном выше фрагменте кода.
print('MySQL Version =', os.environ['MYSQL_VERSION'])
Выход: Mysql.7.18.
Но правильный ли правильный способ получить значение переменной окружающей среды? Посмотрим, что произойдет, когда переменная среды нет.
>>> print(os.environ['DATA']) Traceback (most recent call last): File "", line 1, in File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py", line 678, in __getitem__ raise KeyError(key) from None KeyError: 'DATA' >>>
Лучший способ использовать Получить () Функция переменной окружающей среды. Если переменная среды нет, то она вернет Нет Отказ
>>> print(os.environ.get('DATA'))
None
Мы также можем указать значение по умолчанию для возврата, если переменная среды нет.
>>> print(os.environ.get('DATA', 'TXT'))
TXT
Ссылка: os.environ.