os.environ獲取與設置系統變量
1、簡介
對於官方的解釋,environ是一個字符串所對應環境的映像對象。這是什么意思呢?舉個例子來說,environ['HOME']就代表了當前這個用戶的主目錄。
2、windows和ubuntu下的environ的key示例
2.1、Windows示例:
2.2、Linux示例:
2.3、Windows與Linux系統變量區別:
os.environ[HOME]
在linux中適用而在windows下面是沒有這個key的,在windows下是HOMEPATH
,又比如linux下的USER在windows下面對應的就是USERNAME.
總結這些差異來說,他們都是各自系統的本身特性造成的,比如你用的是gnome版的ubuntu,那么key里面就會多出一條['GNOME_DESKTOP_SESSION_ID'].
3、key字段詳解:
3.1、Windows
os.environ['HOMEPATH']:當前用戶主目錄。 os.environ['TEMP']:臨時目錄路徑。 os.environ[PATHEXT']:可執行文件。 os.environ['SYSTEMROOT']:系統主目錄。 os.environ['LOGONSERVER']:機器名。 os.environ['PROMPT']:設置提示符。
3.2、Linux
os.environ['USER']:當前使用用戶。 os.environ['LC_COLLATE']:路徑擴展的結果排序時的字母順序。 os.environ['SHELL']:使用shell的類型。 os.environ['LAN']:使用的語言。 os.environ['SSH_AUTH_SOCK']:ssh的執行路徑。
4、用Python Shell設置或獲取環境變量的方法
4.1、設置系統環境變量
1、os.environ['環境變量名稱']='環境變量值' #其中key和value均為string類型 2、os.putenv('環境變量名稱', '環境變量值')
4.2、獲取系統環境變量
1、os.environ['環境變量名稱'] 2、os.getenv('環境變量名稱')
5、使用小例子
從一段code說起 “if "BATCH_CONFIG_INI" in os.environ:” 判斷環境變量的值有沒有定義,如果定義的話就去環境變量的值,否則就取當前目錄下的config.ini文件。
if "BATCH_CONFIG_INI" in os.environ: print "Using custom ini file!" self.inifile = os.environ["BATCH_CONFIG_INI"] else: self.inifile = self.cur_file_dir() + "/config.ini" self.db_print ("inifile = (%s)" %(self.inifile))
6、django 解決: You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.c
在文件開始加上
import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djblog.settings")
注意一定要加在load model.xxx之前
目的是為了任何一個django project中的*.py文件都能夠正常的使用項目中的數據模型操作