2010-02-11 1 views
8

Ich schreibe eine Python-Bibliothek mit einer benutzerspezifischen Konfigurationsdatei, die vom Benutzer der Bibliothek bearbeitet werden kann. Die Bibliothek generiert auch Protokolldateien. Ein * nix, der Standard scheint zu sein, sie in $ HOME/.library_name auszugeben.Speicherort für Benutzerkonfigurationsdateien in Windows

Allerdings bin ich mir nicht sicher, was ich mit Windows-Benutzern tun soll. Ich habe Windows seit Jahren verwendet, bevor ich zu Linux wechselte und es scheint, dass Anwendungen dazu neigten, entweder auf GUI Konfiguration (die ich lieber nicht entwickeln würde) oder auf B) Konfigurationsdaten in der Registry zu deponieren (was lästig ist zu entwickeln und nicht tragbar mit den * nix config files)

Ich speichere gerade die Dateien in den $ HOME/.library_name auf Windows, aber das fühlt sich sehr unnatürlich auf Windows an.
Ich habe darüber nachgedacht, es in% APPDATA% zu platzieren, wo Anwendungsdaten zu leben neigen, aber dies hat jedoch seine eigenen Probleme. Meine größte Sorge ist, dass Laien nicht einmal wissen, wo sich dieses Verzeichnis befindet (im Gegensatz zu% HOME/~), und benutzerdefinierbare Konfigurationsdateien scheinen hier nicht normal zu laufen.

Wie lautet der Standardspeicherort für benutzerdefinierbare Konfigurationsdateien unter Windows?

+6

Kann ich nur sagen, als jemand, der meistens von Windows die meiste Zeit verwendet: ** Danke ** für das Nichtkleben in der Registrierung. Hoffentlich sind die Konfigurationsdateien einfacher Text, den ich einfach sichern, kopieren, bearbeiten kann usw. –

Antwort

10

% APPDATA% ist der richtige Ort für diese (wahrscheinlich in einem Unterverzeichnis für Ihre Bibliothek). Leider haben eine ganze Reihe von * nix-Apps, portiert nach Windows , nicht das respektiert, und ich lande mit .gem, .ssh, .VirtualBox usw., Ordner, die mein Home-Verzeichnis überladen und nicht standardmäßig als * nix ausgeblendet sind .

Sie können es auch für Benutzer leicht machen, die nicht viel über das Layout der Windows-Verzeichnisstruktur wissen, indem sie einen Menüeintrag (oder Ähnliches) haben, der die Konfigurationsdatei in einem Editor für sie öffnet.

Wenn möglich, stellen Sie der Datei ein GUI-Front-End zur Verfügung, auch wenn es ein recht einfaches ist. Windows-Benutzer erwarten ein Tool | Menüpunkt Optionen, der ein Dialogfeld öffnet, in dem Optionen festgelegt werden können, ohne dass es einen Pluspunkt gibt.

1

Unter Windows wird vom Benutzer nicht erwartet, dass er eine Anwendung mit bearbeitbaren Konfigurationsdateien konfiguriert, daher gibt es keinen Standard.
Der Standard für die Konfiguration, die mit einer GUI bearbeitet werden kann, ist die Registrierung. Wenn Sie QT (oder PyQT?) Verwenden, können Sie QSettings verwenden, die eine Abstraktionsschicht bereitstellen. Unter Linux verwendet es eine Konfigurationsdatei und schreibt unter Windows in die Registry.

8

Das python appdirs Paket ist eine gute Arbeit, um den Standardplatz für Anwendungsdaten auf verschiedenen Plattformen zu finden. Z.B. für Windows verwendet es die englische XP Standort:

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

und auf Linux folgt es dem XDG Standard:

~/.config/<appname>