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.
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.
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.
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.
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.
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.
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.
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
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