6

Dla programu Python, który piszę, chciałbym dać możliwość konfigurowania go na trzy różne sposoby. Zmienne środowiskowe, pliki konfiguracyjne i argumenty wiersza poleceń.Jaka jest kolejność wartości konfiguracyjnych odczytu?

Logicznie myślę, że argumenty wiersza poleceń powinny zawsze mieć najwyższy priorytet. Wątpię, czy zmienne środowiskowe powinny mieć pierwszeństwo przed plikami konfiguracyjnymi? I czy ma znaczenie, czy pliki konfiguracyjne są systemowe, specyficzne dla użytkownika czy podane jako argument w wierszu poleceń?

(Zauważ, że moja platforma Unix/Linux)

Odpowiedz

15

Norma, że ​​wiem to pierwsze spojrzenie na parametr wiersza poleceń, jeśli nie znaleziono Var, wówczas lokalny plik konfiguracyjny następnie globalny plik konfiguracyjny środowiska.

Kiedy więc jakiś pakiet jest gdzieś zainstalowany. Będzie miał domyślny plik konfiguracyjny. Można to zmienić za pomocą lokalnego pliku konfiguracyjnego. Które można przesłonić parametrem environ, a następnie parametr wiersza poleceń ma najwyższy priorytet.

Jeśli plik konfiguracyjny zostanie zadeklarowany w wierszu poleceń, jego zawartość będzie miała pierwszeństwo przed parametrami środowiskowymi lub innymi plikami konfiguracyjnymi. Ale parametry wiersza polecenia będą miały pierwszeństwo przed nim. Należy jednak pamiętać, że ścieżka wyszukiwania nadal istnieje. Jeśli pakiet szuka var, to szuka.

Command line. 
Config file thats name is declared on the command line. 
Environment vars 
Local config file (if exists) 
Global config file (if exists) 

myślę wiele kompilatorów wiersza poleceń oraz biblioteka Boost config pak działa w podobny sposób

+0

nie wiem, czy podana kolejność jest oficjalny czy zawsze sensowne, ale brzmi to całkiem dobre dla mnie jest:) +1 – Mecki

+0

Cóż, zawsze mogliśmy wydać dużo pieniędzy i stworzyć standard IEEE. Na. Za dużo czasu i wysiłku za małą nagrodę. Microsoft, Google i inni zwykli podejrzani mieliby tysiąc i jeden powód, dla którego nie mogliby w zgodzie z wytycznymi Mecki/Kinga. – kingchris

+1

"Plik konfiguracyjny w linii poleceń" jest dyskusyjny. Z mojego doświadczenia wynika, że ​​zwykle zastępuje pliki zapasów. –

Powiązane problemy