2010-02-11 12 views
8

Estoy escribiendo una biblioteca de Python que tiene un archivo de configuración por usuario que puede ser editado por el usuario de la biblioteca. La biblioteca también genera archivos de registro. En * nix, el estándar parece ser volcarlos en $ HOME/.library_name.Ubicación para poner archivos de configuración de usuario en Windows

Sin embargo, no estoy seguro de qué hacer con los usuarios de Windows. He usado Windows durante años antes de cambiar a Linux y parece que las aplicaciones tendían a A) confiar en la configuración de la GUI (que prefiero no desarrollar) o B) volcar datos de configuración en el registro (lo cual es molesto para desarrollar y no es portátil con los archivos de configuración * nix)

Actualmente estoy volcando los archivos en $ HOME/.library_name en Windows también, pero esto se siente muy poco natural en Windows.
He considerado colocarlo en% APPDATA%, donde los datos de las aplicaciones tienden a vivir, pero esto tiene sus propios problemas. Mi mayor preocupación es que los usuarios no pueden saber dónde está ese directorio (a diferencia de% HOME/~), y los archivos de configuración editables por el usuario no parecen ir normalmente.

¿Cuál es la ubicación estándar para los archivos de configuración editables por usuario en Windows?

+6

¿Puedo decir como alguien que en su mayoría se utiliza Windows mayoría de las veces: ** Gracias ** por no pegar esto en el registro. Afortunadamente, los archivos de configuración son texto sin formato, puedo hacer copias de seguridad, copiar, editar, etc. –

Respuesta

10

% APPDATA% es el lugar correcto para estos (probablemente en un subdirectorio para su biblioteca). Desafortunadamente, un buen número de aplicaciones * nix portadas a Windows no se corresponden con y termino con .gem, .ssh, .VirtualBox, etc., carpetas que abarrotan mi directorio principal y no están ocultas por defecto como en * nix .

Puede facilitarlo incluso a los usuarios que no saben mucho sobre el diseño de la estructura de directorios de Windows al tener un elemento de menú (o similar) que abre el archivo de configuración en un editor para ellos.

Si es posible, proporcione una interfaz gráfica de usuario para el archivo, aunque sea bastante simple. Los usuarios de Windows esperarán una Herramientas | Elemento de menú de opciones que abre un cuadro de diálogo que les permite establecer opciones y no será aprovechado al no tener uno.

1

En Windows no se espera que el usuario configure una aplicación usando archivos de configuración editables por lo que no hay un estándar.
El estándar para la configuración editable mediante una GUI es el registro.

Si está utilizando QT (o PyQT?) Puede usar QSettings que proporcionan una capa de abstracción. En Linux usa un archivo de configuración y en Windows se escribe en el registro.

8

El paquete python appdirs hace un buen trabajo al encontrar el lugar estándar para los datos de aplicación en varias plataformas. P.ej. para Windows que utiliza la ubicación Inglés XP:

C:\Documents and Settings\<User>\Application Data\Local Settings\<AppAuthor>\<AppName> 

y en Linux que sigue el estándar XDG:

~/.config/<appname> 
Cuestiones relacionadas