Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the best method for setting up a config file in Python

I realise this question as been asked before (What's the best practice using a settings file in Python?) but seeing as this was asked 7 years ago, I feel it is valid to discuss again seeing as how technologies have evolved.

I have a python project that requires different configurations to be used based on the value of an environment variable. Since making use of the environment variable to choose a config file is simple enough, my question is as follows:

What format is seen as the best practice in the software industry for setting up a configuration file in python, when multiple configurations are needed based on the environment?

I realise that python comes with a ConfigParser module but I was wondering if it might be better to use a format such as YAML or JSON because of there raise in popularity due to their ease of use across languages. Which format is seen as easier to maintain when you have multiple configurations?

like image 821
Keegan Ferrett Avatar asked Apr 04 '18 05:04

Keegan Ferrett


1 Answers

I think looking at the standard configuration for a Python Django settings module is a good example of this, since the Python Django web framework is extremely popular for commercial projects and therefore is representative of the software industry.

It doesn't get too fancy with JSON or YAML config files - It simply uses a python module called settings.py that can be imported into any other module that needs to access the settings. Environment variable based settings are also defined there. Here is a link to an example settings.py file for Django on Github:

https://github.com/deis/example-python-django/blob/master/helloworld/settings.py

like image 117
Initial Commit Avatar answered Oct 13 '22 00:10

Initial Commit