Python 系统环境变量 {os.environ}
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
print(os.environ['HOME'])
print(os.environ['USER'])
print(os.environ['SHELL'])
print(os.environ['LANGUAGE'])
print(os.environ['SSH_AUTH_SOCK'])
print(os.environ.keys())
/usr/bin/python2.7
/home/strong
strong
/bin/bash
en_US
/run/user/1000/keyring/ssh
['PYTHONIOENCODING', 'QT_QPA_PLATFORMTHEME', 'XDG_VTNR', 'XDG_GREETER_DATA_DIR', 'QT4_IM_MODULE', 'LC_IDENTIFICATION', 'UPSTART_EVENTS', 'XDG_CURRENT_DESKTOP', 'UNITY_HAS_3D_SUPPORT', 'XDG_SESSION_TYPE', 'QT_IM_MODULE', 'LOGNAME', 'PYCHARM_HOSTED', 'GNOME_KEYRING_PID', 'GNOME_KEYRING_CONTROL', 'LC_PAPER', 'PATH', 'PYTHONUNBUFFERED', 'LD_LIBRARY_PATH', 'XDG_SESSION_DESKTOP', 'SHELL', 'XDG_SESSION_PATH', 'XAUTHORITY', 'LANGUAGE', 'SESSION_MANAGER', 'LC_MEASUREMENT', 'QT_LINUX_ACCESSIBILITY_ALWAYS_ON', 'NLSPATH', 'MANDATORY_PATH', 'CLUTTER_IM_MODULE', 'UNITY_DEFAULT_PROFILE', 'DISPLAY', 'GNOME_DESKTOP_SESSION_ID', 'JOB', 'SESSION', 'UPSTART_INSTANCE', 'SESSIONTYPE', 'XMODIFIERS', 'GIO_LAUNCHED_DESKTOP_FILE_PID', 'GPG_AGENT_INFO', 'HOME', 'LC_MONETARY', 'GTK2_MODULES', 'LANG', 'SHLVL', 'GIO_LAUNCHED_DESKTOP_FILE', 'XDG_RUNTIME_DIR', 'INSTANCE', 'LC_ADDRESS', 'PYTHONPATH', 'COMPIZ_CONFIG_PROFILE', 'COMPIZ_BIN_PATH', 'SSH_AUTH_SOCK', 'GDMSESSION', 'IM_CONFIG_PHASE', 'UPSTART_JOB', 'QT_ACCESSIBILITY', 'XDG_SEAT_PATH', 'LC_NUMERIC', 'XDG_SESSION_ID', 'DBUS_SESSION_BUS_ADDRESS', 'GTK_MODULES', 'GTK_IM_MODULE', 'DESKTOP_SESSION', 'UPSTART_SESSION', 'XDG_CONFIG_DIRS', 'DEFAULTS_PATH', 'XDG_SEAT', 'LC_NAME', 'GDM_LANG', 'LC_TELEPHONE', 'PAPERSIZE', 'XDG_DATA_DIRS', 'PWD', 'XFILESEARCHPATH', 'XDG_MENU_PREFIX', 'LC_TIME', 'USER']
Process finished with exit code 0
设置系统环境变量
os.environ['环境变量名称']='环境变量值'
获取系统环境变量
os.environ['环境变量名称']
其中 key
和 value
均为 string
类型
1. Python 2 os.environ
os.environ
A mapping object representing the string environment. For example, environ['HOME']
is the pathname of your home directory (on some platforms), and is equivalent to getenv("HOME")
in C.
一个表示字符串环境的 mapping 对象。例如,environ['HOME']
是你的主目录 (在某些平台上) 的路径名,相当于 C 中的 getenv("HOME")
。
This mapping is captured the first time the os
module is imported, typically during Python startup as part of processing site.py
. Changes to the environment made after this time are not reflected in os.environ
, except for changes made by modifying os.environ
directly.
这个映射是在第一次导入 os
模块时捕获的,通常作为 Python 启动时处理 site.py
的一部分。除了通过直接修改 os.environ
之外,在此之后对环境所做的更改不会反映在 os.environ
中。
If the platform supports the putenv()
function, this mapping may be used to modify the environment as well as query the environment. putenv()
will be called automatically when the mapping is modified.
如果平台支持 putenv()
函数,这个映射除了可以用于查询环境外还能用于修改环境。当这个映射被修改时,putenv()
将被自动调用。
Note Calling putenv()
directly does not change os.environ
, so it’s better to modify os.environ
.
直接调用 putenv()
并不会影响 os.environ
,所以推荐直接修改 os.environ
。
Note On some platforms, including FreeBSD and Mac OS X, setting environ
may cause memory leaks. Refer to the system documentation for putenv()
.
在某些平台上,包括 FreeBSD 和 Mac OS X,设置 environ 可能导致内存泄露。参阅 putenv() 的系统文档。
If putenv()
is not provided, a modified copy of this mapping may be passed to the appropriate process-creation functions to cause child processes to use a modified environment.
如果平台没有提供 putenv()
, 为了使启动的子进程使用修改后的环境,一份修改后的映射会被传给合适的进程创建函数。
If the platform supports the unsetenv() function, you can delete items in this mapping to unset environment variables. unsetenv()
will be called automatically when an item is deleted from os.environ
, and when one of the pop()
or clear()
methods is called.
如果平台支持 unsetenv()
函数,你可以通过删除映射中元素的方式来删除对应的环境变量。当一个元素被从 os.environ
删除时,以及 pop()
或 clear()
被调用时,unsetenv()
会被自动调用。
2. Python 3 os.environ
Python 2 os.environ
+
On Unix, keys and values use sys.getfilesystemencoding()
and 'surrogateescape'
error handler. Use environb if you would like to use a different encoding.
在 Unix 系统上,键和值会使用 sys.getfilesystemencoding()
和 'surrogateescape'
的错误处理。如果你想使用其他的编码,使用 environb
。
References
[1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/