Nous avons résumé l'utilisation simple des outils utiles suivants disponibles en Python.
Il facilite la gestion des packages et la création d'environnements virtuels lors du développement avec Python. Cela ressemble à npm dans Node.js.
Installation de pipenv
pip install pipenv
Créez un fichier pip
pipenv --python 3.8 # 3.La partie 8 peut être modifiée pour la version de Python que vous souhaitez utiliser
Un Pipfile
est créé.
Installation du package de développement Installez un outil d'analyse statique qui n'est utilisé que pendant le développement.
pipenv install --dev black --pre
pipenv install --dev flake8 --pre
pipenv install --dev isort --pre
pipenv install --dev mypy --pre
Chaque paquet est ajouté aux [dev-packages] de Pipfile
, et Pipfile.lock
est créé / mis à jour.
Installation de packages de production Installez le package utilisé pour la production.
pipenv install requests --pre
Chaque package est ajouté aux [packages] de Pipfile
, et Pipfile.lock
est créé / mis à jour.
Créer un environnement virtuel
Construisez sur la base des informations dans Pipfile.lock
.
Pour l'environnement de développement
```bash
pipenv sync --dev
```
Pour l'environnement de production
```bash
pipenv sync
```
Mettez à jour Pipfile.lock
(OK si nécessaire)
pipenv install
Entrez dans l'environnement virtuel
pipenv shell
Vérifiez le package d'installation
pip list
```bash
Package Version
----------------- ---------
appdirs 1.4.4
black 20.8b1
certifi 2020.6.20
chardet 3.0.4
click 7.1.2
flake8 3.8.3
idna 2.10
isort 5.5.3
mccabe 0.6.1
mypy 0.782
mypy-extensions 0.4.3
pathspec 0.8.0
pip 20.1.1
pycodestyle 2.6.0
pyflakes 2.2.0
regex 2020.9.27
requests 2.24.0
setuptools 49.6.0
toml 0.10.1
typed-ast 1.4.1
typing-extensions 3.7.4.3
urllib3 1.25.10
wheel 0.35.1
```
</div></details>
```bash
Package Version
---------- ---------
certifi 2020.6.20
chardet 3.0.4
idna 2.10
pip 20.1.1
requests 2.24.0
setuptools 49.6.0
urllib3 1.25.10
wheel 0.35.1
```
</div></details>
Sortez de l'environnement virtuel
exit
Supprimez l'environnement virtuel
pipenv --rm
black est un formateur de code Python qui modifie automatiquement l'écriture des programmes. Il est également conforme à la convention de codage standard Python PEP8.
Réglage noir
Vous pouvez définir les paramètres dans pyproject.toml
.
Dans ce qui suit, la longueur d'une ligne est limitée à 120 lignes et les dossiers qui ne sont pas formatés sont spécifiés.
Si vous souhaitez définir plus de paramètres, vous pouvez le découvrir en cochant.
[tool.black]
line-length=120
exclude = '''
/(
.eggs
| .git
| .hg
| .pytest_cache
| .mypy_cache
| .tox
| .venv
| build
| dist
)/
'''
Paramètres de script Pipenv
Ajoutez des scripts à Pipfile
.
[scripts]
black = "black ." # --Si vous ajoutez une vérification, elle ne sera vérifiée que sans mise en forme.
pipenv run black
Le code python sera formaté automatiquement
flake8 est un wrapper pour l'outil de vérification de code ci-dessous.
--PyFlakes (pyflakes: vérification des erreurs de code) --pycodestyle (vérifier s'il est conforme à pycodestyle: PEP8)
paramètres flake8
Vous pouvez définir les paramètres dans setup.cfg
.
Dans ce qui suit, la longueur d'une ligne est limitée à 120 lignes et les dossiers qui ne sont pas vérifiés sont spécifiés.
De plus, E203, W503, W504 sont ignorés en raison du noir.
Si vous souhaitez définir plus de paramètres, vous pouvez le découvrir en cochant.
[flake8]
exclude = .git, .tox, .venv, .eggs, build, dist, docs, tests
max-line-length = 120
ignore = E203,W503,W504
Paramètres de script Pipenv
Ajoutez des scripts à Pipfile
.
[scripts]
flake8 = "flake8 ."
pipenv run flake8
Le code python sera vérifié.
isort trie les importations par ordre alphabétique et les divise automatiquement en sections.
paramètres isort
Vous pouvez définir les paramètres dans setup.cfg
.
Dans ce qui suit, la longueur d'une ligne est limitée à 120 lignes et les dossiers qui ne sont pas vérifiés sont spécifiés.
Si vous souhaitez définir plus de paramètres, vous pouvez le découvrir en cochant.
[isort]
line_length = 120
skip = .git, .tox, .venv, .eggs, build, dist, docs
include_trailing_comma = true
multi_line_output = 3
'''
Paramètres de script Pipenv
Ajoutez des scripts à Pipfile
.
[scripts]
isort = "isort . --atomic" # --Si vous supprimez atomic, il ne sera vérifié que sans mise en forme.
pipenv run isort
Le code python sera formaté automatiquement
mypy vérifiera si vous pouvez écrire des indices de type conformes à PEP484.
Paramètres Mypy
Vous pouvez définir les paramètres dans setup.cfg
.
Ce qui suit ignore l'absence de fichier de définition de type de module (stub) et force les annotations de type.
Si vous souhaitez définir plus de paramètres, vous pouvez le découvrir en cochant.
[mypy]
ignore_missing_imports = True
disallow_untyped_defs = True
Paramètres de script Pipenv
Ajoutez des scripts à Pipfile
.
[scripts]
mypy = "mypy ."
pipenv run mypy
Le code python sera vérifié.
Avec ces outils, vous serez plus productif dans le développement avec Python. Si vous gérez votre code sur GitHub, définissez ce qui suit dans GitHub Actions et il effectuera automatiquement une analyse statique lorsque vous poussez. Si vous obtenez une erreur, corrigez-la et appuyez à nouveau.
yml:.github/workflows/ci.yml
name: Source Code Check
on: [push]
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: '3.8'
- name: Install Python Dependencies
run: |
python -m pip install --upgrade pip
pip install pipenv
pipenv sync --dev
- name: Check with black
run: pipenv run black
- name: Check with flake8
run: pipenv run flake8
- name: Check with isort
run: pipenv run isort
- name: Check with mypy
run: pipenv run mypy