UpNext2 Development Record # 1 Erstellen Sie eine Python CI-Umgebung in VS Code

Dies ist eine Fortsetzung von [UpNext2 Development Record # 0] 1. Dieses Mal werden wir beim Erstellen der Vorverarbeitung in Python eine Umgebung einrichten, die die beim letzten Mal vorgestellten Ziele C1 bis C3 erfüllt. Die lokale Umgebung ist MacOS Catalina.

Ich werde die Ziele C1 bis C3 erneut veröffentlichen.

Artikel Artikel Bemerkungen
C1 Versionsverwaltung mit GitHub Bisher wurde keine Versionsverwaltung durchgeführt. Dieses Mal werden wir GitHub verwenden, um den Entwicklungsprozess aufzuzeichnen und zu veröffentlichen. Die GitHub-Version von V1 war nur eine Dateikopie, nachdem die Entwicklung abgeschlossen war.
C2 Verwendung von VS-Code Herkömmlich flattern/Nur mit Dart gemacht und verwendet Android Studio. Dieses Mal habe ich vor, Python für die Vorverarbeitung zu verwenden, daher ist dies eine gute Gelegenheit, um mit VS Code zu entwickeln.
C3 Testbeschreibung Da es sich um eine persönliche Entwicklung handelt, habe ich keinen Test geschrieben. Als ich jedoch in UpNext auf einen komplizierten Fehler bei der Entwicklung einer bestimmten Skala stieß, war ich mir der Notwendigkeit von Tests sehr bewusst. Ich beschloss, einen Test für das Studium richtig zu schreiben.

Im Folgenden finden Sie eine schrittweise Übersicht über das Setup.

1. Vorbereitung von GitHub und Zusammenarbeit mit dem lokalen Repository, das von VS Code verwaltet wird

Nachdem Sie verschiedene Dinge ausprobiert haben, war das folgende Verfahren das beste, um lokal und remote erfolgreich zu verbinden.

Auf diese Weise können Sie Staging durchführen, um ein Commit für das lokale Repository durchzuführen und ein Push an das Remote-Repository zu senden, indem Sie VS Code auf der Benutzeroberfläche ausführen. (Möglicherweise müssen Sie den Benutzernamen usw. mit dem Befehl git festlegen.)

Außerdem macht es Spaß, GitGraph usw. als Add-On für VSCode aufzunehmen.

2. Legen Sie mit .gitignore Dateien fest, die nicht im Repository gespeichert sind

Übertragen Sie keine Arbeitsverzeichnisse und Dateien verschiedener Tools, Arbeiten für die Entwicklung und Informationen, die Sie nicht veröffentlichen möchten (von Ihnen selbst erhaltener API-Schlüssel usw.), in das Repository. Der Mechanismus dafür ist .gitignore.

2.1 Erstellen einer Gitignore-Datei und Definieren ihres Inhalts

Erstellen Sie eine Gitignore-Datei im Stammverzeichnis Ihres Projekts. Der Inhalt ist vorerst wie folgt.

.gitignore


.*
*cache*
*local*
*secret*

Insbesondere wird * und \ * Cache * benötigt. Ohne sie würde eine große Anzahl von Systemarbeitsdateien und allgemeinen Bibliotheken für virtuelle Python-Umgebungen im Repository landen.

2.2 Drücken Sie nicht .gitignore selbst

Ich mache das gerne, aber es ist möglich zu vermeiden, .gitignore selbst zu pushen.

Fügen Sie excludesfile = .gitignore in der Gruppe [core] von .git / config in der Projekthomepage hinzu.

3. Erstellen Sie mit venv eine virtuelle Python-Umgebung

In VScode können Sie die Python-Umgebung auswählen und verwenden. Wenn Sie jedoch verschiedene Dinge vorbereiten, stellen Sie sicher, dass Python 3 standardmäßig verwendet wird. Passen Sie den Pfad so an, dass 3 Serien als Python -V angezeigt werden. Stellen Sie sicher, dass der Pip auch 3er ist. (Beachten Sie, dass in neuerem Python nicht empfohlen wird, pip direkt einzugeben, sondern als Python -m pip verwendet zu werden.)

Da Python je nach Version der Bibliothek kompliziert ist, wird empfohlen, für jede Anwendung eine virtuelle Umgebung vorzubereiten und den Bibliothekssatz zu wechseln. Bisher wurden pyenv und virtualenv verwendet, um die Python-Version selbst einzuschließen. In Python 3.6 und höher werden sie jedoch nicht empfohlen. Es wird jetzt empfohlen, venv zu verwenden.

Richten Sie im Projekthaus die venv-Umgebung als python -m venv .pyvenv ein. .pyvenv kann ein beliebiger anderer Name sein, aber es ist am besten, mit zu beginnen. Um das Ziel von .gitignore zu sein. In der venv-Umgebung sind verschiedene gängige Bibliotheken installiert. Wenn Sie also nicht auf .gitignore klicken, ist dies eine große Sache. Wenn Sie eine neue venv-Umgebung erstellen, befindet sich die Bibliothek einschließlich pip im Ausgangszustand. Installieren Sie sie daher gemäß den verschiedenen Anweisungen erneut.

Nachdem Sie die venv-Umgebung eingerichtet haben, können Sie die venv-Umgebung in VSCode auswählen. Wählen Sie sie daher aus (zunächst wird sie nicht angezeigt, selbst wenn Sie auf die Statusleiste klicken. Wählen Sie sie in Python: Wählen Sie Interpreter im Menü der Befehlspalette. Scheint zu müssen). Wenn Sie es hier auswählen, aktiviert VS Code automatisch venv. Natürlich müssen Sie in der Zwischenzeit die Python-Erweiterung von VSCode installieren.

4. Erstellen Sie eine Pytest-Umgebung

Derzeit scheint es, dass der in der Bibliothek integrierte Pytest häufig anstelle des in Python integrierten Unittest verwendet wird. Wählen Sie pytest aus Python: Konfigurieren Sie Tests im Menü der Befehlspalette, um die Umgebung zu erstellen. Wählen Sie zu diesem Zeitpunkt .Root-Verzeichnis als Testverzeichnis.

Teilen Sie Ihre Verzeichnisse wie folgt auf, um Ihre Quellen und Tests sauber zu halten: Da wir in diesem Plan planen, anderen Code als Python zu programmieren, ist dieser außerdem in Teilprojekte unterteilt.

(Project root)/
 ├ src - temp.py
 └ tests - test_temp.py

Wenn Sie temp.py aus test_temp.py mit einer normalen relativen Pfadangabe importieren, werden Sie hier von einem Fehler abhängig.

Durch Anwenden der aktualisierten Lösung von "[Ich habe mit ModuleNotFoundError gerungen, die auftritt, wenn ich den Testcode und den zu testenden Code in separate Verzeichnisse in Python stelle] 2" konnte ich sie elegant lösen. Es war.

Die Lösung ist:

Wenn Sie das Obige mit dem Testverzeichnis kombinieren, das in den Pytest-Einstellungen auf .Root-Verzeichnis festgelegt ist, können Sie den Test normal ausführen (Beachten Sie, dass der Import fehlschlägt, wenn Sie test_temp.py direkt ausführen, ohne die VSCode-Benutzeroberfläche zu verwenden. ). Darüber hinaus wird die auf VSCode basierende Korrespondenz auch im Referenzlink veröffentlicht, diesmal durch Ausprobieren.

5. Festlegen von Codierungsstandards

Wählen Sie flake8 unter Python: Wählen Sie Linter aus dem Menü der Befehlspalette. Es kann verschiedene andere Einstellungen geben, aber ich erinnere mich keinen Moment. Schweiß

6. Richten Sie einen automatisierten Test ein, wenn Sie das lokale Repository als CI festschreiben

Die Codierungsstandardprüfung kann zum Zeitpunkt des Speicherns mit VS-Code automatisch überprüft werden, der Test muss jedoch manuell ausgeführt werden. Ursprünglich möchte ich, dass der Test automatisch ausgeführt wird, wenn das lokale Repository festgeschrieben und das Remote-Repository gepusht wird. Letzteres ist nützlich, wenn der Pull-Requester und der Committer unterschiedliche Personen sind, und es scheint, dass es heutzutage beliebt ist, Travis CI vor und GitHub-Aktionen zu verwenden.

Für die persönliche Entwicklung scheint es, dass nur automatische Tests zum Zeitpunkt des Festschreibens des lokalen Repositorys ausreichen. Stellen Sie es also ein. Mit der Hook-Funktion des lokalen git-Befehls scheint dies eine gute Möglichkeit zu sein, die Ausführung mit dem Hook-Skript Pre-Commit zu testen. Erstellen Sie das Projekt home /.git/hooks/pre-commit mit der folgenden Ausführungsberechtigung. Beachten Sie, dass dieses Skript nicht der Zuständigkeit von VS Code unterliegt. Vergessen Sie daher nicht, die Aktivierung zu schreiben.

pre-commit


#!/bin/sh
source .pyvenv/bin/activate
python -m pytest

Wenn Sie jetzt ein Commit für ein lokales Repository in VSCode durchführen, wird der Test automatisch ausgeführt und das Commit wird abgebrochen, wenn der Test fehlschlägt. Es ist ein Erfolg.

Recommended Posts

UpNext2 Development Record # 1 Erstellen Sie eine Python CI-Umgebung in VS Code
Entwicklungsumgebung in Python
Erstellen Sie eine Python-Entwicklungsumgebung mit Visual Studio Code
Verwenden Sie Python in einer Anaconda-Umgebung mit VS-Code
Erstellen Sie eine Python-Ausführungsumgebung mit VS-Code
[ev3dev × Python] Aufbau einer ev3dev-Entwicklungsumgebung
Erstellen Sie eine Entwicklungsumgebung mit Jupyter und Flask mit Python in Docker (unterstützt sowohl VS Code als auch Code-Server).
Erstellen Sie eine Python-Umgebung mit WSL + Pyenv + Jupyter + VSCode
Wettbewerb mit VS-Code Erstellen Sie eine Python-Umgebung für Profis unter Windows
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
Erstellen Sie eine Python-Entwicklungsumgebung (pythonz, virtualenv, direnv).
[Windows 10] [Aufbau der Entwicklungsumgebung] Auflösen, wenn ungelöste import'django.xxx-Python (ungelöster Import) in VS Code auftritt
VS Code + Azure-Funktionen + Python-Umgebungskonstruktionsverfahren
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
Erstellen Sie mit Eclipse eine Minecraft-Plug-Entwicklungsumgebung
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Richten Sie die TinyGo-Entwicklungsumgebung für VS Code ein
Konstruktionsvorlage für die lokale Python-Entwicklungsumgebung [Flask / Django / Jupyter mit Docker + VS-Code]
Framework-Entwicklung mit Python
Slackbot-Entwicklung in Python
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (3) GVim8.0 und Python3.6
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
Beleben Sie die Symbolsuche im Python-Arbeitsbereich mit VS-Code
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (1)
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
Python-Entwicklungsumgebung mit Windows + Anaconda3 + Visual Studio Code
Erstellen Sie eine Python-Entwicklungsumgebung mit pyenv unter MacOS
Python-Entwicklungsumgebung mit Windows + Python + PipEnv + Visual Studio-Code
Stellen Sie settings.json für eine effiziente Python-Codierung mit VS-Code bereit
Ich habe versucht, eine Umgebung mit WSL + Ubuntu + VS-Code in einer Windows-Umgebung zu erstellen
[Django] Verwenden Sie VS Code + Remote-Container, um schnell eine Entwicklungsumgebung für Django-Container (Docker) zu erstellen.
Python mit VSCode (Windows 10)
[Venv nicht erforderlich] Die stärkste Python-Entwicklungsumgebung, die mit Remote Containern erstellt wurde [VS Code / Docker]
Erstellen Sie eine Ubuntu-Python-Entwicklungsumgebung auf der Google Cloud Platform
Verwendung von VS-Code in einer venv-Umgebung mit Windows
Schreiben Sie Spigot in VS Code
Erstellen Sie eine Go-Entwicklungsumgebung mit den Remote-Containern von VS Code
Befehle, die häufig in der Entwicklungsumgebung während der Python-Implementierung verwendet werden
Erstellen Sie eine VS Code + Docker-Entwicklungsumgebung mit Linux VM
CI-Umgebungskonstruktion ~ Python Edition ~
Behandeln Sie Umgebungsvariablen in Python
Erstellen einer Entwicklungsumgebung für Android-Apps - Erstellen von Android-Apps mit Python
Erstellen Sie eine Python3-Umgebung mit Ubuntu 16.04
Erstellen Sie eine Python-Umgebung unter Windows
Debuggen Sie Python mit VS-Code
Bereiten Sie die Python-Entwicklungsumgebung mit Mac + Windows + VisualStudio Code (Windows-Version) vor.
Erstellen Sie mit direnv eine Python-Umgebung
Organisieren Sie die Python-Entwicklungsumgebung
Bereiten Sie die Python-Entwicklungsumgebung mit Mac + Windows + VisualStudio Code (Mac-Version) vor.
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (2) Grundeinstellungen
Erstellen Sie eine Python-Umgebung mit Windows
Python-Entwicklung mit Visual Studio 2017
[MEMO] [Entwicklung der Entwicklungsumgebung] Python
[Zum Organisieren] Python-Entwicklungsumgebung
Erstellen Sie die Python-Umgebung offline
Generierung von Spezifikationen und Code in der REST-API-Entwicklung (Python Edition)
Ich möchte Python mit VS-Code ausführen können