Procédure de construction de l'environnement de projet Python (pour Windows)

introduction

Cet article concerne la création d'un environnement de développement pour "Python + Pipenv + VS Code".

Il est écrit par un ingénieur avec une année d'expérience en Python, vous ne pourrez donc peut-être pas comprendre la culture de Python, mais soyez conscient de cela.

motivation

La gestion des packages est requise lors de la gestion du code source en équipe. La création du même environnement d'exploitation réduit les coûts de communication.

Une chose tellement naturelle. .. Je pense que.

La gestion des packages est courante pour moi car je n'ai fait que du développement d'applications, mais Python ne se limite pas au développement d'applications et est également utilisé pour la science des données et l'automatisation de petites tâches, il est donc nécessaire de gérer les packages. J'ai remarqué que la perception de est différente pour chaque développeur.

De plus, le fait que le gestionnaire de packages standard n'existe pas dans le monde Python (ce que je pense) fait également varier l'image de la gestion des packages d'un développeur à l'autre.

Dans le cas du javascript, il y a npm et yarn, et je pense que c'est la culture du javascript de commencer à écrire du code sur le principe de la gestion des paquets. D'un autre côté, Python a pip comme gestionnaire de paquets bien connu, mais pour moi qui ai utilisé npm, pip me semble très pauvre.

J'ai récemment présenté pipenv à mon équipe et j'ai trouvé que cela fonctionnait, alors j'écrirai comment créer un environnement de projet Python à l'aide de pipenv.

Source de la structure du projet présentée dans cet article

Si vous voulez un projet de base avec la configuration pipenv tout de suite, vous pouvez le trouver sur github.

PythonProjectStarterKit

Si vous avez déjà installé Pipenv sur le pip global, vous pouvez immédiatement essayer de cloner le référentiel ci-dessus à l'exécution d'un test unitaire. La méthode d'installation est la suivante.

git clone https://github.com/michiharu/PythonProjectStarterKit.git
cd PythonProjectStarterKit
pipenv install --dev --pre
pipenv run test

À propos de Python

Vanilla vs Anaconda

Il semble que l'installateur standard Python s'appelle "Vanilla Python". Nous supposerons que Python est installé à l'aide du programme d'installation de la page officielle.

Anaconda est pratique, mais à mon avis, cela n'a pas beaucoup de sens pour l'environnement d'exécution. Si vous êtes un développeur d'applications, vous devez comprendre la configuration minimale de l'environnement d'exécution Python.

Il semble bon de connaître Vanilla pour le développement d'applications et Anaconda pour la science des données. Les articles suivants ont été très utiles pour créer l'environnement Python.

Construction de l'environnement Python-Windows

Lors de la lecture de cet article et de la reconstruction de l'environnement Python, il est recommandé d'exporter la bibliothèque que vous avez utilisée dans un fichier texte.

pip freeze > requirememts.txt

Construction de l'environnement Python

Télécharger l'installateur standard

Depuis la page officielle de Python, sélectionnez «Fichiers> Programme d'installation Web Windows x86-64» et sélectionnez Téléchargez le programme d'installation.

Installation

Lorsque vous exécutez le programme d'installation, une case à cocher indique "Voulez-vous ajouter le chemin vers python à la variable d'environnement système?" Assurez-vous de vérifier avant l'installation.

Vérification

Ouvrez une invite de commande et procédez comme suit:

python --version

Construction de l'environnement de pipenv

La procédure d'utilisation de pipenv est expliquée ci-dessous.

Installation

Vous pouvez l'utiliser avec la commande suivante.

pip install pipenv

Lorsque l'installation est terminée, appuyez sur la commande pipenv pour voir une liste de commandes pouvant être exécutées avec pipenv.

Définition des variables d'environnement système

Le comportement par défaut de pipenv est de créer une ressource d'environnement virtuel dans .virtualenvs dans le répertoire USER, séparé du répertoire du projet. Cela n'est pas pratique car il n'est pas accessible immédiatement lors de la vérification de la bibliothèque de l'environnement virtuel, activez donc le paramètre pour créer un environnement virtuel dans le projet dans les paramètres de la variable d'environnement système.

PIPENV_VENV_IN_PROJECT=true

Ce qui précède est la construction de l'environnement en vue de la réalisation d'un projet.

Comment créer un nouveau projet

Paramètres .vscode

Mise en garde

Si vous définissez .vscode, VSCode peut afficher la boîte de dialogue" Voulez-vous installer? ". Nous ne recommandons pas l'installation à partir de cette boîte de dialogue.

La raison est que le Pipfile ne sera pas mis à jour car le script exécuté automatiquement sera installé globalement en utilisant pip au lieu de pipenv à moins que la méthode d'ajout de package décrite ci-dessous ne soit utilisée. Installez Linter et Formatter avec pipenv.

Description du fichier settings.json

Afin de partager les paramètres Linter et Formatter avec vscode, les paramètres suivants sont requis dans .vscode / settings.json.

{
  "python.venvPath": ".venv",
  "python.pythonPath": ".venv\\Scripts\\python.exe",
  "python.envFile": "${workspaceFolder}/.env",
  "python.linting.enabled": true,
  "python.linting.pylintEnabled": false,
  "python.linting.flake8Enabled": true,
  "python.linting.mypyEnabled": true,
  "python.formatting.provider": "black",
  "python.linting.flake8Args": ["--ignore=E501,W503"],
  "editor.formatOnSave": true
}

Ce qui suit est possible avec les paramètres ci-dessus.

À propos du fichier .env

Afin d'ajouter des variables d'environnement lors de l'exécution de python, écrivez ce qui suit dans le fichier .env. L'emplacement est directement sous le projet.

PYTHONPATH=".\src;"

PYTHONPATH ajoute un emplacement pour rechercher des modules lors de l'exécution de python. Vous pouvez écrire plusieurs éléments séparés par des points-virgules.

À propos du noir

Le formateur a sélectionné le noir. Black lui-même prétend être "Black est le formateur de code Python sans compromis." Selon

Les paramètres ont fait l'objet d'une discussion approfondie sur le format, veuillez donc l'utiliser tel quel. Arrêtons-nous de nous soucier du format? Cela fait gagner du temps et, surtout, y met de l'énergie.

... Apparemment ...

Par conséquent, s'il y a un conflit de règle avec flake8, le noir aura la priorité. Autrement dit, laissez flake8 ignorer les règles contradictoires.

python.linting.flake8Args est configuré pour ignorer certaines règles de flake8 pour éviter les conflits de règles avec le noir. Par exemple, --ignore = E501 est un paramètre pour ignorer le maximum de 79 caractères par ligne de flake8 (le noir a un maximum de 88 caractères par ligne). Je pense qu'il y avait d'autres règles qui étaient en conflit avec le noir autres que celle définie ici comme exemple, mais si vous obtenez une erreur flake8 liée au format, veuillez l'ajouter à chaque fois.

Introduction de pipenv

Exécutez la commande suivante. La version Python peut être définie plus finement. Si la version correspondante de Python n'est pas installée, une erreur se produira. Dans ce cas, veuillez installer à partir du programme d'installation standard.

pipenv --python 3

Lorsque vous exécutez la commande, les fichiers suivants seront ajoutés au répertoire du projet.

Paquet ajouté

Pour les packages utilisés au moment de l'exécution

pipenv install [package]

Pour les packages utilisés pendant le développement tels que Linter et les outils de test

pipenv install --dev [package]
pipenv install --dev mypy flake8 black isort --pre

--dev est une option à gérer comme un package de développement. --pre est une option qui permet l'installation de packages pré-publiés. le noir est décrit sur la page officielle comme "REMARQUE: Ceci est un produit bêta", et s'il n'y a pas de pré-option, une erreur se produira indiquant que la mise à jour de Pipfile.lock a échoué.

Projet de clonage

Si le projet cloné a Pipfile, utilisez la commande suivante pour générer .venv et y installer les modules requis.

//Pipfile[packages]Ajoutez le package décrit dans
pipenv install

//Pipfile[dev-packages]Ajoutez le package décrit dans
pipenv install --dev --pre

Activer pipenv dans le projet géré dans requirements.txt

Vous pouvez installer le package à partir de requirements.txt en utilisant l'argument r.

pipenv install -r ./requirements.txt

Structure de répertoires standard pour les projets Python

Je pense que c'est une culture indépendante de la langue de mettre le code source dans le répertoire src. La structure des répertoires sous src est la suivante.

src
├── package
│   ├── foo_module.py
│   ├──   :
│   └── xxx.py
└── tests
    ├── __init__.py
    ├── test_foo_module.py
    ├──   :
    └── test_xxx.py

Pour importer foo_module.py depuis test_foo_modules.py, écrivez comme suit.

import package.foo_module

Enregistrement d'exécution / script

Le test peut être exécuté avec la commande suivante:

//Pour l'exécution par lots
pipenv run python -m unittest discover src -v

Si vous ne placez pas __init __. Py dans le répertoire des tests, une erreur se produira car le code de test ne peut pas être trouvé à partir d'unittest avec la commande ci-dessus.

De plus, les commandes fréquemment utilisées peuvent être enregistrées en tant que scripts. Ajoutez les éléments suivants au Pipfile.

[scripts]
test = "python -m unittest discover tests -v"
isort = "python -m isort -m 3 ."

Avec ce paramètre, vous pouvez tester avec la commande suivante.

pipenv run test

Le second isort ajouté est un formateur spécialisé dans les importations. Comme le noir introduit jusqu'à présent ne touche pas à l'importation, le format d'importation est laissé à l'écart.

pipenv run isort

C'est tout pour la procédure de création de l'environnement d'un projet Python.

Recommended Posts

Procédure de construction de l'environnement de projet Python (pour Windows)
Procédure d'installation de Python 3.6 [pour Windows]
Construction de l'environnement Python (Windows10 + Emacs)
Construction de l'environnement Python pour Mac
Procédure de construction de l'environnement python Anaconda3
Construction de l'environnement Python3 (pour les débutants)
Construire un environnement Python sous un environnement Windows 7
Procédure de création d'un environnement CDK sous Windows (Python)
Mémo de construction de l'environnement Python sur Windows 10
Construction de l'environnement Anaconda Python sous Windows 10
[Python3] Construction de l'environnement de développement << Édition Windows >>
Construction de l'environnement Python3 TensorFlow pour Mac
environnement windows python
Construction d'environnement (python)
construction d'environnement python
Python - Construction de l'environnement
Construction de l'environnement Python
Mémo pour la création d'un environnement Python à l'aide de Docker sur Windows 10 Famille
Procédure de construction de l'environnement de développement Python (anaconda) (SpringToolsSuites) _2020.4
Construction de l'environnement VScode (Windows10, Python, C ++, C, Git)
Procédure de construction de l'environnement: Ubuntu + Apache2 + Python + Pyramid
Création d'un environnement de développement Python pour Windows + gVim + Poetry
Construction de l'environnement du projet Django
construction d'environnement python homebrew
Construction de l'environnement de développement Python
Construction de l'environnement de développement python2.7
Construction de l'environnement Python @ Win7
Installez Python (pour Windows)
Maintenance de l'environnement Python pour les projets
VS Code + Azure Functions + Procédure de construction de l'environnement Python
Construction de l'environnement Python (Anaconda + VSCode) @ Windows10 [version janvier 2020]
Traitement d'image avec la configuration de l'environnement Python pour Windows
Procédure de création d'un environnement d'isolation Python (environnement venv)
Préparer un environnement de développement Python pour chaque projet dans un environnement Windows (VSCode + virtualEnvWrapper + Pylint)
Construction de l'environnement Python + Anaconda + Pycharm
Procédure de construction de l'environnement pour faire fonctionner Chrome sans installer Python sur Windows (en utilisant du sélénium)
Construction de l'environnement CI ~ Édition Python ~
Créer un environnement Python sur Windows
Procédure de construction de l'environnement de développement Google App Engine / Python (fin 2014)
Construction d'environnement Python et TensorFlow
Construire un environnement Python avec Windows
[Python] Construction de l'environnement Django (pyenv + pyenv-virtualenv + Anaconda) pour macOS
Procédure pour convertir un fichier python en exe à partir de la construction de l'environnement Ubunts
[MEMO] [Construction de l'environnement de développement] Python
[Pour organiser] Environnement de développement Python
[Tensorflow] Construction de l'environnement Tensorflow sous Windows 10
construction de l'environnement de développement de projet django
Construction de l'environnement de python2 & 3 (OSX)
Construction de l'environnement Ansible pour Mac
Installer dlib pour Python (Windows)
OpenJTalk sur Windows10 (parler japonais avec Python depuis la construction de l'environnement)
Construction d'environnement de python et opencv
Commencez avec Python! ~ ① Construction de l'environnement ~
Construction d'un environnement d'apprentissage amélioré Python + Unity
installation de python2.7 dans un environnement Windows 32 bits
[Django] Mémorandum de procédure de construction d'environnement