Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where to store the configuration files of python applications on Windows

Tags:

python

windows

I have a python program that must work on Windows and Linux. There are some configuration options I normally store in a file, in a subdirectory of the program's directory.

For Windows, I converted it to exe and created an Installer for it. And now I have the problem of dealing with the config file.

What is the best place to save the configuration file? I have read that for Windows os.environ['APPDATA']+'myAppName' is the path that must be used. Is it correct? Is it standard? Will it work in all versions of Windows at least from XP (and at least in English and Spanish)?

PD: I am not interested in using ConfigParser. Config file is in my own format and I have working code for reading/writing from it.

like image 436
jeanc Avatar asked Jun 27 '12 14:06

jeanc


2 Answers

Storing settings in the user directory is usually a good idea.

These days, you should probably use something like the appdirs library to find a good path to store your configuration in.

Under most Unices, just store a (preferably dot-prefixed) file in the home directory. Under OS X, you'd want to create a directory for your application in the user's Library folder, and store your files there. Under Windows, APPDATA is a good place to build a directory in for your application. It should work on all Windows localizations, and it looks like it was also available in Windows XP.

like image 200
djc Avatar answered Oct 07 '22 00:10

djc


On Linux, it is common to store the configuration file in the users home directory, for instance ~/.myprogramrc. On windows Vista and up, users have a home directory as well (/Users/username) and a would recommend storing your settings there in a subfolder (/Users/useranem/myprogram). Storing the settings in the application folder will generate UAC warnings.

On Windows XP, users do not have a home folder. Some programs make the choice of putting configuration in the 'My Documents' folder which I guess is as good a place as any.

like image 21
Marijn van Vliet Avatar answered Oct 07 '22 00:10

Marijn van Vliet