<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>Hallo Henning,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>für das Home-Verzeichnis ist vermutlich <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";mso-fareast-language:EN-US'>>>> os.path.expanduser("~")<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";mso-fareast-language:EN-US'>'C:\\Users\\koch'<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>die schlankere Variante.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>sollte auch unter Unix funktionieren... siehe:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><a href="http://docs.python.org/2/library/os.path.html">http://docs.python.org/2/library/os.path.html</a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><i>- Alternativ könnte man auch die Config beim ersten Start eines Programms erzeugen lassen. <o:p></o:p></i></p><p class=MsoNormal><i><o:p> </o:p></i></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>Das ist eigentlich auch nicht unüblich. <o:p></o:p></span></p><p class=MsoNormal><i><o:p> </o:p></i></p><p class=MsoNormal><i>Hier ist jedoch die Frage, woher ich hier am besten die default Werte einlese, ohne dass ich z.B. einen langen string-block in eine Datei ausgeben lasse. Gibt es hier die Möglichkeit, dass z.B. eine my_project.conf.default in /usr/local/share/ (o.ä.) liegt, die genau dorthin beim Setup kopiert wird?</i><br><br><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>Du könntest doch einfach eine default-config in Deinem Paket mit ausliefern und beim ersten Aufruf des Scriptes an die entsprechende Stelle kopieren (Vorteil: die default-config wird auch wieder restauriert, wenn der User sie löscht). <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>Das Template für die default-config kannst Du doch ruhig mit dem Paket unter Python (also in Lib\site-packages) installieren – einige Pakete bringen auch Resourcen wie images mit – der Mechanismus ist ja nicht nur auf .py files beschränkt.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'>Hoffe das hilft…<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Grüße,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Thomas <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Von:</span></b><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'> python-users [mailto:python-users-bounces@uni-koeln.de] <b>Im Auftrag von </b>Henning Dickten<br><b>Gesendet:</b> Dienstag, 4. März 2014 13:52<br><b>An:</b> python-users@uni-koeln.de<br><b>Betreff:</b> [python-users] default config file erzeugen / mit installieren / vernünftig ablegen<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Hallo zusammen,<br><br>im Zuge eines Uni Projektes suche ich nach einer eleganten aka pythonischen Lösung zum Erzeugen / Ausliefern einer Konfigurationsdatei, die im Home-Verzeichnis des Nutzers liegen soll und nach Ausführung des Setups dort liegen soll.<br><br>So weit bin ich bereits gekommen:<br>- Das Home/Config-Verzeichnis würde ich XDG herausfinden lassen. Hier bin ich auch für Lösungen offen, bei denen ich keine zusätzliche Abhängigkeit brauche.<br>- Ein post-install skript konnte ich bisher nur erzwingen, indem ich die "install"-Methode von setuptools überladen habe und weiteren Kram ausführen lasse. Dies finde ich jedoch relativ hässlich. Gibt es hierfür bereits Hausmittel in der Standard Library?<br>- Alternativ könnte man auch die Config beim ersten Start eines Programms erzeugen lassen. Hier ist jedoch die Frage, woher ich hier am besten die default Werte einlese, ohne dass ich z.B. einen langen string-block in eine Datei ausgeben lasse. Gibt es hier die Möglichkeit, dass z.B. eine my_project.conf.default in /usr/local/share/ (o.ä.) liegt, die genau dorthin beim Setup kopiert wird?<br><br>Beste Grüße und vielen Dank im Voraus!<span style='color:#888888'><br><br> Henning Dickten</span><o:p></o:p></p></div></div></div></body></html>