Du bist ungefähr so wie ich, „Aufschub“ könnte genauso intestine dein zweiter Vorname sein. Es gibt immer ein quälendes Zögern, bevor man ein neues Projekt startet. Allein der Gedanke daran, die Projektstruktur einzurichten, eine Dokumentation zu erstellen oder eine anständige README-Datei zu schreiben, reicht aus, um ein Gähnen auszulösen. Es fühlt sich an, als würde man auf eine leere Seite eines gefürchteten Schulaufsatzes starren. Aber erinnern Sie sich, wie viel einfacher es wird, wenn ein hilfreiches LLM (wie ChatGPT) eine Startvorlage bereitstellt? Die gleiche Magie kann auf Ihre Codierungsprojekte angewendet werden. Hier kommt Cookiecutter ins Spiel.
Was ist Cookiecutter?
Ausstecher ist ein Open-Supply-Device, das Sie bei der Erstellung von Projektvorlagen unterstützt. Es ist sprachunabhängig und funktioniert mit praktisch jeder Programmiersprache (oder sogar außerhalb der Codierung, falls Sie eine standardisierte Ordner- und Dateistruktur benötigen). Mit Cookiecutter können Sie alle Boilerplate-Dateien (wie READMEs, Dockerfiles, Projektverzeichnisse oder alles andere) einrichten und dann schnell neue Projekte basierend auf dieser Struktur generieren.
Der Cookiecutter-Workflow besteht aus drei Hauptschritten:
- Sie definieren Ihre Projektvorlage.
- Der Benutzer gibt Werte für die von Ihnen angegebenen Variablen ein.
- Cookiecutter generiert ein neues Projekt und füllt automatisch Dateien, Ordner und Variablenwerte basierend auf den Eingaben des Benutzers aus.
Das folgende Bild veranschaulicht diesen Vorgang:

1. Grundlegende Computereinrichtung
Für die Set up und Verwendung von Cookiecutter sind nur minimale Programmierkenntnisse erforderlich. Wenn Sie ein Befehlszeilenfenster öffnen können, können Sie loslegen.
• Geben Sie unter Home windows „cmd“ in die Suchleiste ein und öffnen Sie die „Eingabeaufforderung“.
• Falls Sie es noch nicht getan haben, installieren Sie pipx mit:
pip set up pipx
Testen Sie Ihre Set up, indem Sie Folgendes ausführen:
pipx --version
Wenn Sie die Fehlermeldung „Befehl nicht gefunden“ erhalten, fügen Sie pipx zu Ihrem PATH hinzu. Finden Sie zunächst heraus, wo pipx installiert wurde: python -m web site –user-base.
Dies könnte etwas wie /dwelling/username/.native zurückgeben. Suchen Sie nach dem Ordner, der pipx.exe (unter Home windows) oder pipx (unter macOS oder Linux) enthält. Wenn Sie keine Administratorrechte haben, lautet das Verzeichnis möglicherweise C:BenutzerBenutzernameAppDataRoamingPythonPythonxxxScripts.
Ich musste pipx zu meinem Pfad hinzufügen und wenn Sie keine Administratorrechte haben, müssen Sie dies jedes Mal tun, wenn Sie ein neues Terminalfenster starten. Es wird daher empfohlen, den Standort dauerhaft zu Ihren Umgebungsvariableneinstellungen hinzuzufügen. Wenn diese Einstellung jedoch hinter den Administratorrechten liegt, können Sie sie trotzdem hinzufügen
set PATH=C:UsersusernameAppDataRoamingPythonPythonxxxScripts;%PATH%
Oder
set PATH=/dwelling/username/.native/bin;%PATH%
Hoffentlich erhalten Sie eine aussagekräftige Antwort pipx --version Jetzt.
2. Cookiecutter installieren und einrichten
Cookiecutter wird als Python-Paket verteilt, sodass Sie es mit pipx installieren können:
pipx set up cookiecutter
Oder führen Sie es einfach spontan aus mit:
pipx run cookiecutter ...
Lassen Sie uns durch die Erstellung einer Projektvorlage gehen. In diesem Beispiel richten wir eine Vorlage für Streamlit-Apps ein (cookiecutter_streamlit_ml).
3. Erstellen der Vorlagenstruktur
In Ihrem cookiecutter_streamlit_ml-Ordner benötigen Sie diese beiden Schlüsselkomponenten:
• cookiecutter.json – eine JSON-Datei, die die Variablen definiert, die Benutzer ausfüllen sollen (Projektname, Autor, Python-Model usw.).
• {{ cookiecutter.directory_name }} – Ein Platzhalter-Ordnername, der mit geschweiften Klammern definiert wird. Dieses Verzeichnis enthält die Struktur und Dateien Ihres Projekts. Wenn der Benutzer ein neues Projekt aus Ihrer Vorlage erstellt, ersetzt Cookiecutter diesen Platzhalter durch den von ihm angegebenen Namen. Achten Sie darauf, die geschweiften Klammern beizubehalten!

Ihre cookiecutter.json könnte etwa so aussehen:

Zunächst definieren Sie Variablen in cookiecutter.json, die im gesamten generierten Projekt verwendet werden. Sie benötigen mindestens eine Variable für den Projektnamen.
Beispielsweise verweise ich in der Dokumentation häufig auf mein GitHub-Repository. Anstatt sie wiederholt einzugeben, lege ich eine Variable einmal fest und lasse Cookiecutter jede Instanz automatisch füllen. Ebenso möchte ich meinen Namen nicht in jeder Readme-Datei oder Dokumentationsdatei ausschreiben, additionally setze ich ihn am Anfang.
Um Probleme mit Docker zu vermeiden und sicherzustellen, dass die richtige Python-Model angegeben ist, frage ich bei der Projekterstellung nach der Python-Model und stelle sicher, dass sie in der generierten Docker-Datei verwendet wird.
Sie können für jedes Feld in cookiecutter.json Standardwerte definieren. Cookiecutter ersetzt automatisch jede Instanz von {{ cookiecutter.variable }} in Ihren Vorlagendateien durch die Eingabe des Benutzers. Sie können auch Transformationen wie „decrease()“ oder „change(“, „_“) verwenden, um Probleme mit Leerzeichen in Verzeichnisnamen zu vermeiden.
In meiner Vorlage gebe ich den Benutzern lieber detaillierte Anweisungen, anstatt Standardwerte festzulegen. Dies hilft denjenigen, die möglicherweise das Lesen der README-Datei überspringen und direkt mit der Projekterstellung beginnen möchten.
4. Erstellen Sie Ihre Vorlage
Jetzt beginnt der spaßige Teil, nämlich die Definition Ihrer Vorlage. Da Sie es ein für alle Mal tun, lohnt es sich, etwas Zeit damit zu verbringen, was die Einrichtungszeit Ihres Projekts auf lange Sicht drastisch reduzieren wird.
Erstellen Sie zunächst die Ordnerstruktur für Ihr Projekt. Dazu gehört die Erstellung aller Ordner, die Sie in Ihrem Projekt verwenden möchten. Keine Sorge, was fehlt oder sich als überflüssig erweist, kann im eigentlichen Projekt bearbeitet werden. Im Second erstellen Sie lediglich die Blaupause; Die Pfeifen und Glocken werden projektspezifisch sein.

Sobald Sie Ihre Ordner bereit haben, können Sie sie mit Dateien füllen. Diese können entweder leer sein oder sogar Inhalte enthalten, die Sie andernfalls ständig aus anderen Dokumenten kopieren und einfügen würden. Verweisen Sie in diesen Dateien überall dort auf Ihre Cookie-Cutter-Variablen, wo etwas dynamisch festgelegt werden muss (z. B. der Projektname oder das GitHub-Repo). Cookiecutter ersetzt diese Platzhalter automatisch durch Benutzereingaben, die während der Projekteinrichtung abgefragt werden. Dies erspart Ihnen viel mühsames Kopieren und Einfügen, insbesondere in Ihren Dokumentationsdateien.

Abschließend legen Sie den gesamten Ordner cookiecutter_py_streamlit in Ihrem GitHub-Konto ab, komprimieren Sie ihn oder lassen Sie ihn unverändert. So oder so, Sie können jetzt …
5. Verwenden Sie Ihre Vorlage
Sobald Ihre Vorlage fertig ist, wird das Erstellen eines neuen Projekts zum Kinderspiel:
1. Öffnen Sie Ihr Terminal und navigieren Sie zu der Stelle, an der Sie das Projekt erstellen möchten.
2. Führen Sie einen der folgenden Befehle aus:
• Von GitHub:
pipx run cookiecutter gh:ElenJ/cookiecutter_streamlit_ml (change along with your repo)
• Aus einem lokalen Ordner:
pipx run cookiecutter /path/to/template_folder
• Von einer Postleitzahl:
pipx run cookiecutter /path/to/template.zip
3. Cookiecutter stellt Ihnen die in cookiecutter.json definierten Fragen. Geben Sie Antworten ein – oder drücken Sie einfach die Eingabetaste, wenn Sie Standardwerte festgelegt haben.

4. Voilà 🎉 Ihr neuer Projektordner wird erstellt, komplett mit Ordnern, Dateien und Referenzen, die an Ihre Eingaben angepasst sind.

Sie können Ihr neues Projekt mit GitHub synchronisieren, indem Sie es entweder direkt über die integrierte Git-Funktionalität Ihrer IDE übertragen oder indem Sie ein neues Repo auf GitHub erstellen (stellen Sie sicher, dass es leer ist und keine Readme-Datei enthält) und dann Ihren generierten Projektordner dorthin verschieben.
Und das ist es! Sie haben aus einer früher eintägigen Aufgabe einen schnellen Prozess gemacht und sofort viele Dateien erstellt, die darauf warten, mit Ihren Ideen ausgefüllt zu werden. Wenn Sie sich das neue Projekt ansehen, sollten Sie auf jeden Fall das Gefühl eines produktiven Tages haben. Wenn Sie noch auf der Suche nach Anleitungen zu Finest Practices sind, schauen Sie sich die offizielle Seite an Cookie-Cutter-Vorlagen hier.
Und wie immer: Viel Spaß beim Codieren!
