UpNext2 Development Record # 1 Construire un environnement Python CI dans VS Code

Ceci est une continuation de [UpNext2 Development Record # 0] 1. Cette fois-ci, lors de la création du prétraitement en Python, nous mettrons en place un environnement qui satisfait les objectifs C1 à C3 présentés la dernière fois. L'environnement local est MacOS Catalina.

Je republierai les objectifs C1 à C3.

Article article Remarques
C1 Gestion des versions avec GitHub Auparavant, la gestion des versions n'était pas effectuée. Cette fois, nous utiliserons GitHub pour enregistrer et publier le processus de développement. La version GitHub de la V1 n'était qu'une copie de fichier une fois le développement terminé.
C2 Utilisation du code VS Flutter conventionnellement/Fabriqué uniquement avec Dart et utilise Android Studio. Cette fois, je prévois d'utiliser Python pour le prétraitement, c'est donc une bonne opportunité de développer avec VS Code.
C3 Description du test Puisqu'il s'agit d'un développement personnel, je n'ai pas passé de test. Cependant, dans UpNext, lorsque je suis tombé sur un bogue compliqué dans le développement d'une certaine échelle, j'étais parfaitement conscient de la nécessité de tester. J'ai décidé d'écrire correctement un test pour étudier.

Voici un aperçu étape par étape de la configuration.

1. Préparation de GitHub et coopération avec le référentiel local géré par VS Code

Après avoir essayé diverses choses, la procédure suivante était la meilleure pour réussir à relier local et distant.

Cela permet d'effectuer un staging pour s'engager dans le référentiel local et pousser vers le référentiel distant en exécutant VS Code sur l'interface utilisateur. (Il peut être nécessaire de définir le nom d'utilisateur, etc. avec la commande git)

De plus, il est amusant d'inclure GitGraph etc. en tant qu'add-on pour VSCode.

2. Définissez les fichiers qui ne sont pas enregistrés dans le référentiel avec .gitignore

Ne poussez pas les répertoires de travail et les fichiers de divers outils, les travaux de développement et les informations que vous ne souhaitez pas publier (clé API obtenue par vous-même, etc.) dans le référentiel. Le mécanisme pour cela est .gitignore.

2.1. Créer un fichier .gitignore et définir son contenu

Créez un fichier .gitignore dans le répertoire racine de votre projet. Le contenu est le suivant pour l'instant.

.gitignore


.*
*cache*
*local*
*secret*

En particulier, * Et \ * cache * sera nécessaire. Sans cela, un grand nombre de fichiers de travail système et de bibliothèques communes pour les environnements virtuels python se retrouveraient dans le référentiel.

2.2. Ne poussez pas .gitignore lui-même

J'aime faire ça, mais il est possible d'éviter de pousser .gitignore lui-même.

Ajoutez excludesfile = .gitignore dans le groupe [core] de .git / config dans la page d'accueil du projet.

3. Créez un environnement virtuel Python avec venv

Dans VScode, vous pouvez sélectionner et utiliser l'environnement Python, mais lors de la préparation de diverses choses, assurons-nous que Python 3 est utilisé par défaut. Ajustez le chemin pour que 3 séries apparaissent comme python -V. Assurez-vous que le pip est également de la série 3. (Notez que dans Python récent, il n'est pas recommandé de taper directement pip, il semble être utilisé comme python -m pip)

Étant donné que Python est compliqué en fonction de la version de la bibliothèque, il est recommandé de préparer un environnement virtuel pour chaque application et de changer l'ensemble de bibliothèques. Auparavant, pyenv et virtualenv étaient utilisés pour basculer pour inclure la version python elle-même, mais ils ne sont pas recommandés dans Python 3.6 et versions ultérieures. Il est maintenant recommandé d'utiliser venv.

Dans la page d'accueil du projet, configurez l'environnement venv comme python -m venv .pyvenv. .pyvenv peut être n'importe quel autre nom, mais il est préférable de commencer par. Pour qu'il soit soumis à .gitignore. Diverses bibliothèques communes sont installées dans l'environnement venv, donc si vous n'utilisez pas .gitignore, ce sera un gros problème. Si vous créez un nouvel environnement venv, la bibliothèque contenant pip sera dans son état initial, veuillez donc la réinstaller selon diverses instructions.

Après avoir configuré l'environnement venv, vous pourrez sélectionner l'environnement venv sur VSCode, alors sélectionnez-le (au début, il n'apparaît pas même si vous cliquez sur la barre d'état, sélectionnez-le depuis Python: Sélectionnez Interpreter dans le menu de la palette de commandes. Semble avoir besoin de). Si vous le sélectionnez ici, VS Code activera automatiquement venv. Bien sûr, vous devez installer l'extension Python de VSCode entre-temps.

4. Créez un environnement pytest

Actuellement, il semble que la bibliothèque intégrée pytest soit souvent utilisée à la place de l'unité intégrée Python. Sélectionnez pytest à partir de Python: Configurez les tests dans le menu de la palette de commandes pour créer l'environnement. À ce stade, sélectionnez le répertoire .Root comme répertoire de test.

Pour garder vos sources et vos tests propres, divisez vos répertoires comme suit: De plus, puisque nous prévoyons de coder autre chose que Python dans ce plan, il est en fait divisé en sous-projets.

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

Ici, si vous importez temp.py depuis test_temp.py avec une spécification de chemin relative normal, vous deviendrez accro à une erreur.

En appliquant la solution mise à jour de "[J'ai lutté avec ModuleNotFoundError qui se produit lorsque je place le code de test et le code à tester dans des répertoires séparés en Python] 2", j'ai pu le résoudre avec élégance. C'était.

La solution est:

En combinant ce qui précède avec le répertoire de test défini sur le répertoire .Root dans les paramètres pytest, vous pourrez exécuter le test normalement (notez que si vous exécutez test_temp.py directement sans utiliser l'interface utilisateur VSCode, l'importation échouera. ). De plus, la correspondance basée sur VSCode est également publiée dans le lien de référence, cette fois elle a été faite par essais et erreurs.

5. Établissement de normes de codage

Sélectionnez flake8 sous Python: Sélectionnez Linter dans le menu de la palette de commandes. Il peut y avoir divers autres paramètres, mais je ne m'en souviens pas un instant. Transpiration

6. Configurer un test automatisé lors de la validation du référentiel local comme CI

Le contrôle standard de codage peut être vérifié automatiquement au moment de l'enregistrement avec VS Code, mais le test doit être exécuté manuellement. À l'origine, je souhaite que le test soit automatiquement exécuté lorsque le référentiel local est validé et lorsque le référentiel distant est poussé. Ce dernier est utile lorsque le pull requester et le committer sont des personnes différentes, et il semble qu'il soit courant d'utiliser Travis CI avant et GitHub Actions ces jours-ci.

Pour le développement personnel, il semble que seul le test automatique au moment de la validation du dépôt local soit suffisant, alors définissons-le. En utilisant la fonction hook de la commande git locale, cela semble être un bon moyen de tester l'exécution avec le script hook de pre-commit. Créez le projet home /.git/hooks/pre-commit avec l'autorisation d'exécution comme suit. Notez que ce script n'est pas sous la juridiction de VS Code, alors n'oubliez pas d'écrire activate.

pre-commit


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

Désormais, lorsque vous vous engagez dans un référentiel local sur VSCode, le test s'exécutera automatiquement et la validation sera annulée si le test échoue. C'est un succès.

Recommended Posts

UpNext2 Development Record # 1 Construire un environnement Python CI dans VS Code
Environnement de développement en Python
Créer un environnement de développement Python avec Visual Studio Code
Utiliser Python dans un environnement Anaconda avec VS Code
Créer un environnement d'exécution python avec VS Code
[ev3dev × Python] Construction de l'environnement de développement ev3dev
Créer un environnement de développement à l'aide de Jupyter et Flask avec Python dans Docker (prend en charge à la fois VS Code / code-server)
Créer un environnement Python avec WSL + Pyenv + Jupyter + VSCode
Concurrence avec VS Code Créez un environnement Python pour les professionnels sous Windows
Comment créer un environnement d'exécution Python et Jupyter avec VSCode
Construire un environnement de développement Python (pythonz, virtualenv, direnv)
[Windows 10] [Construction de l'environnement de développement] Comment résoudre le cas où un python import'django.xxx non résolu (import'django.xxx) non résolu se produit dans VS Code
VS Code + Azure Functions + Procédure de construction de l'environnement Python
[Python] Créer un environnement de développement Django avec Docker
Créez un environnement de développement Python sur votre Mac
Créez un environnement de développement de plugins Minecraft avec Eclipse
Construire un environnement de développement Python sur Raspberry Pi
Configurer l'environnement de développement TinyGo pour VS Code
Modèle de construction d'environnement de développement local Python [Flask / Django / Jupyter avec Docker + VS Code]
Développement de framework avec Python
Développement Slackbot en Python
Créer un environnement de développement Python basé sur GVim sur Windows 10 (3) GVim8.0 et Python3.6
Créez un environnement interactif pour l'apprentissage automatique avec Python
Relancer la recherche de symboles dans l'espace de travail Python avec VS Code
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Créer un environnement de développement Python sur Mac OS X
Environnement de développement Python avec Windows + Anaconda3 + Visual Studio Code
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
Environnement de développement Python avec Windows + Python + PipEnv + Visual Studio Code
Expose settings.json pour un codage Python efficace avec VS Code
J'ai essayé de créer un environnement avec WSL + Ubuntu + VS Code dans un environnement Windows
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) à l'aide de VS Code + Remote Containers
Python avec VSCode (Windows 10)
[Venv non requis] L'environnement de développement Python le plus puissant créé avec des conteneurs distants [VS Code / Docker]
Créer un environnement de développement Ubuntu python sur Google Cloud Platform
Comment utiliser VS Code dans un environnement Venv avec Windows
Ecrire Spigot dans VS Code
Créez un environnement de développement Go avec les conteneurs distants de VS Code
Commandes souvent utilisées dans l'environnement de développement lors de l'implémentation de Python
Créer un environnement de développement VS Code + Docker avec une machine virtuelle Linux
Construction de l'environnement CI ~ Édition Python ~
Gérer les variables d'environnement en Python
Création d'un environnement de développement pour les applications Android - Création d'applications Android avec Python
Créer un environnement python3 avec ubuntu 16.04
Créer un environnement Python sur Windows
Déboguer Python avec VS Code
Préparer l'environnement de développement Python avec Mac + Windows + VisualStudio Code (version Windows)
Construire un environnement python avec direnv
Organiser l'environnement de développement Python
Préparer l'environnement de développement Python avec Mac + Windows + VisualStudio Code (version Mac)
Créer un environnement de développement Python basé sur GVim sur les paramètres de base de Windows 10 (2)
Construire un environnement Python avec Windows
Développement Python avec Visual Studio 2017
[MEMO] [Construction de l'environnement de développement] Python
[Pour organiser] Environnement de développement Python
Créer un environnement Python hors ligne
Génération de spécifications et génération de code dans le développement d'API REST (édition Python)
Je veux pouvoir exécuter Python avec VS Code