在Python中的各個項目之間共享配置參數\ settings \常量的方法是什麼?在Python項目之間共享設置常量
使用數據庫看起來像一個矯枉過正。使用文件提出了哪些項目應該申辦文件中的源代碼管理的問題...
我開放的建議:)
UPDATE:
爲了澄清 - 呈現的各種項目在不同的系統上部署不同。在某些情況下,在不同的目錄中,在其他情況下,有些項目在那裏,有些則不在。
在Python中的各個項目之間共享配置參數\ settings \常量的方法是什麼?在Python項目之間共享設置常量
使用數據庫看起來像一個矯枉過正。使用文件提出了哪些項目應該申辦文件中的源代碼管理的問題...
我開放的建議:)
UPDATE:
爲了澄清 - 呈現的各種項目在不同的系統上部署不同。在某些情況下,在不同的目錄中,在其他情況下,有些項目在那裏,有些則不在。
創建一個Python包,並在各個項目導入...
我發現,在許多情況下,使用配置文件確實是值得的(未成年人)的麻煩。內置的ConfigParser
模塊非常方便,尤其是它可以很容易地解析多個文件,並讓模塊將它們合併在一起,並且稍後解析的文件中的值將覆蓋先前解析的文件的值。這可以方便地使用全局文件(例如/etc/yoursoftware/main.ini)和每個用戶文件(〜/ .yoursoftware/main.ini)。
然後,您的每個項目都會打開配置文件並從中讀取值。
這裏是一個小的代碼示例:
basefile.ini:
[sect1]
value1=1
value2=2
overridingfile.ini:
[sect1]
value1=3
configread.py:
#!/usr/bin/env python
from ConfigParser import ConfigParser
config = ConfigParser()
config.read(["basefile.ini", "overridingfile.ini"])
print config.get("sect1", "value1")
print config.get("sect1", "value2")
運行,這將打印出來:
3
2
ConfigParser是非常有用的,我實際上已經在使用它。然而,我試圖弄清楚如何在項目之間共享這些常量。 – Jonathan
你爲什麼不只是有一個constants.py文件命名,只是有常數=值
爲什麼是數據庫矯枉過正?您正在描述位於不同物理系統上的不同項目之間共享數據,這些項目具有到每個項目目錄的不同路徑哦,有時這些項目不在那裏。我無法想象傳達數據的更好方法。它只需要一個表格,如果它提供跨平臺,計算機甚至網絡所需的一致訪問權限,這一點也不過分。
DB當然會解決這個問題。我可以使用一個可以放鬆耦合的屬性值模型。但是,在這個問題中,我試圖尋找下一個最佳選擇。 +1,因爲這當然會解決問題。 – Jonathan
我剛剛寫了所有四個答案,當時我寫這表明你沒有清楚地指出問題是什麼。 – msw