[英]How to read environment variables from specific file with python 2.7
為了聲明一些環境變量然后使用它們調用一些 python 腳本,我創建了一個 myfile.sh 文件,它是由 bash myfile.sh 運行的。 但是,我有很多腳本應該讀取這些環境變量,但無法為每個腳本創建一個 myfile.sh!
所以我的想法是創建一個環境變量文件並通過我的每個 python 腳本訪問它。
所以我的問題是,如何使用 python 2.7 訪問這樣的文件?
一個最相關的問題如下: os.environ 從哪里讀取環境變量?
需要注意的是,我無法安裝額外的庫,例如 dotenv。 因此,如果可能,解決方案應該基於標准庫。
任何幫助將不勝感激!
我必須創建一個應該由我的腳本訪問的新環境變量文件。
這不是它的工作原理。 您需要的是在調用腳本之前從文件中設置環境變量:
我的環境文件
export DB_USER="foo"
export DB_PWD="bar"
export DB_NAME="mydb"
# etc
腳本文件
import os
DB_USER = os.getenv("DB_USER")
DB_PWD = os.getenv("DB_PWD")
DB_NAME = os.getenv("DB_NAME")
# etc
然后
$ source /path/to/myenv.sh
$ python /path/to/myscript.py
大多數情況下,您希望將以上兩行代碼包含在一個 shell 腳本中,以使系統管理員的工作更輕松。
編輯:如果您希望這些 env vars 被“自動”設置,您總是可以從 .bashrc 或類似的地方獲取它們 - 但這是一個系統管理員問題,而不是一個編程問題。
現在的問題是:你真的需要在這里使用環境變量嗎? 您也可以使用 python 設置文件 - 一個只定義這些變量的普通 Python 模塊,即:
我的設置.py
DB_USER = "foo"
DB_PWD = "bar"
# etc
並確保包含此腳本的目錄的路徑在您的 $PYTHONPATH 中。 然后你的腳本只需要導入它(就像它們導入任何其他模塊一樣),你就完成了。
錦上添花:您甚至可以混合兩種解決方案,讓您的設置模塊查找環境變量並提供默認值,即:
我的設置.py
import os
DB_USER = os.getenv("DB_USER", "foo")
DB_PWD = os.getenv("DB_PWD", "bar")
# etc
從命令行顯示環境
export
set
設置環境變量
export foo=bar
set foo=bar
打印環境變量:
echo $foo
echo %foo%
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.