cas simple strong> J'ai un programme Python que j'ai l'intention de prendre en charge les systèmes * Nix et Windows. Le programme doit être configurable, au moins globalement. Existe-t-il un moyen multi-plate-forme pour résoudre le fichier de configuration? P> I.e. Je veux écrire au lieu de p> quelque chose le long des lignes de p> Un cas légèrement plus avancé fort> p> peut-il être utilisé à la configuration spécifique à l'utilisateur? C'est à dire. Pour conserver la configuration dans
p> ~ utilisateur / .myprogram / code> sous UNIX et dans
HKEY_LOCAL_USER code> Section de registre sous Windows? P> P>
3 Réponses :
Python permettra aux chemins de slash avant-slash sur Windows, et OS.Path.Expanduser code> fonctionne également sous Windows, de sorte que vous puissiez obtenir un chemin de fichier spécifique à l'utilisateur à l'aide de:
config_file = os.path.expanduser("~/foo.ini")
Génial, et existe-t-il un moyen de résoudre le premier cas (chemin de fichier de configuration globale)?
Vous voudrez peut-être utiliser Vous pouvez l'obtenir à partir de: Launchpad < / a> p> ou l'installer à partir de PYPI p> et dans votre code, utilisez quelque chose comme: p> Il est utilisé par Ubuntu One, regardez cet exemple de code de Leur documentation: https://one.ubuntu.com/ Développeur / Data / U1DB / Tutorial # Stockage-and-Récupération-Tâches P> P> dirspec code>. Il fonctionne dans gnu / linux, Mac OS et Windows.
Les réponses actuelles fournissent une solution incomplète à vos problèmes (plate-forme multi-plate-forme + utilisateur VS VS System-Wide-Wide-Wide-Wide-Wide System). P>
Library Confondre répond à vos besoins: P>
Combinez des données de configuration à partir de plusieurs sources. En utilisant la superposition, Confondre permet une configuration spécifique à l'utilisateur de remplacer de manière transparente Configuration à l'échelle du système, qui remplace à son tour les valeurs par défaut intégrées.
[...]
Un emballage config_default.yaml peut être utilisé pour fournir un bas de couche Les valeurs par défaut utilisent la même syntaxe que les utilisateurs verront. Une superposition d'exécution permet au programme de remplacer par programmation et d'ajouter une configuration valeurs. Recherchez des fichiers de configuration dans des chemins spécifiques à la plate-forme. Comme $ Xdg_config_home ou ~ / .config sur UNIX; "Support d'application" sur MacOS; % Appdata% sur Windows. P> blockQuote>
Dupe possible de Stackoverflow.com/questions/965694/...
Merci pour la pointe, mais ce n'est pas vraiment une dupe. Ces deux questions concernent le format du fichier de configuration, tandis que ma question concerne son emplacement.
N'utilisez pas ~ / .MyProgramme, utilisez la spécification XDG basé sur XDG, qui définit là où vous devrait i> stocker / lire vos configurations. (Par défaut, ~ / .config / myprogram).