6

Для программы python, которую я пишу, я хотел бы дать возможность настроить ее тремя различными способами. Переменные среды, файлы конфигурации и аргументы командной строки.Какой порядок считывания значений конфигурации?

Логично, что аргументы командной строки всегда должны иметь наивысший приоритет. Я немного сомневаюсь, должны ли переменные среды иметь приоритет над файлами конфигурации? И будет ли вопрос, являются ли файлы конфигурации системными, конкретными пользователями или заданы в качестве аргумента в командной строке?

(Обратите внимание, что моя платформа Unix/Linux)

ответ

15

стандарт, что я знаю, это первый взгляд для параметра командной строки, если не найден среды Var, то локальный конфигурационный файл затем глобальный конфигурационный файл.

Итак, когда пакет установлен где-то. Он будет иметь конфигурационный файл по умолчанию. Это можно изменить с помощью локального файла конфигурации. Который может быть переопределен параметром окружения, а параметр командной строки имеет самый высокий приоритет.

Если файл конфигурации объявлен в командной строке, то его содержимое будет иметь приоритет над параметрами среды или любыми другими конфигурационными файлами. Но параметры командной строки будут иметь приоритет над ним. Но помните, что путь поиска все еще существует. Если пакет ищет var, он ищет.

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

Я думаю, что многие компиляторы командной строки, и подталкивания библиотека конфигурации Pak работает аналогичным образом

+0

Я не знаю, если ваш данный порядок является официальным или всегда имеет смысл, но это звучит очень хорошо для меня:) +1 – Mecki

+0

Ну, мы всегда могли потратить много денег и сделать стандарт IEEE. Na. Слишком много времени и усилий для небольшой награды. Microsoft и Google и другие обычные подозреваемые будут иметь свои тысячи и одну причину, по которым они не могут соответствовать руководству Mecki/King. – kingchris

+1

«файл конфигурации в командной строке» положение спорно. По моему опыту, он обычно заменяет файлы запаса. –

Смежные вопросы