Wir haben die einfache Verwendung der folgenden nützlichen Tools in Python zusammengefasst.
Es erleichtert die Verwaltung von Paketen und die Erstellung virtueller Umgebungen bei der Entwicklung mit Python. Es fühlt sich an wie npm in Node.js.
Installation von pipenv
pip install pipenv
Erstellen Sie eine Pipfile
pipenv --python 3.8 # 3.Teil 8 kann in die Version von Python geändert werden, die Sie verwenden möchten
Ein Pipfile
wird erstellt.
Installation des Entwicklungspakets Installieren Sie ein statisches Analysetool, das nur während der Entwicklung verwendet wird.
pipenv install --dev black --pre
pipenv install --dev flake8 --pre
pipenv install --dev isort --pre
pipenv install --dev mypy --pre
Jedes Paket wird zu [dev-packages] von Pipfile
hinzugefügt und Pipfile.lock
wird erstellt / aktualisiert.
Installation von Produktionspaketen Installieren Sie das für die Produktion verwendete Paket.
pipenv install requests --pre
Jedes Paket wird zu [Paketen] von Pipfile
hinzugefügt und Pipfile.lock
wird erstellt / aktualisiert.
Erstellen einer virtuellen Umgebung
Build basierend auf den Informationen in Pipfile.lock
.
Für die Entwicklungsumgebung
```bash
pipenv sync --dev
```
Für die Produktionsumgebung
```bash
pipenv sync
```
Aktualisieren Sie Pipfile.lock
(OK, wenn nötig)
pipenv install
Betreten Sie die virtuelle Umgebung
pipenv shell
Überprüfen Sie das Installationspaket
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>
Verlassen Sie die virtuelle Umgebung
exit
Löschen Sie die virtuelle Umgebung
pipenv --rm
black ist ein Python-Code-Formatierer, der das Schreiben von Programmen automatisch ändert. Es entspricht auch der Python-Standardcodierungskonvention PEP8.
Schwarze Einstellung
Sie können die Einstellungen in pyproject.toml
definieren.
Im Folgenden wird die Länge einer Zeile auf 120 Zeilen begrenzt und die nicht formatierten Ordner angegeben.
Wenn Sie weitere Einstellungen vornehmen möchten, können Sie dies durch Überprüfen überprüfen.
[tool.black]
line-length=120
exclude = '''
/(
.eggs
| .git
| .hg
| .pytest_cache
| .mypy_cache
| .tox
| .venv
| build
| dist
)/
'''
Pipenv-Skripteinstellungen Fügen Sie Skripte zu "Pipfile" hinzu.
[scripts]
black = "black ." # --Wenn Sie check hinzufügen, wird es nur ohne Formatierung geprüft.
pipenv run black
Der Python-Code wird automatisch formatiert
flake8 ist ein Wrapper für das folgende Code-Check-Tool.
--PyFlakes (Pyflakes: Codefehlerprüfung) --pycodestyle (prüfen Sie, ob es pycodestyle entspricht: PEP8)
flake8 einstellungen
Sie können die Einstellungen in setup.cfg
definieren.
Im Folgenden wird die Länge einer Zeile auf 120 Zeilen begrenzt und die nicht überprüften Ordner angegeben.
Auch E203, W503, W504 werden unter Berücksichtigung von Schwarz ignoriert.
Wenn Sie weitere Einstellungen vornehmen möchten, können Sie dies durch Überprüfen überprüfen.
[flake8]
exclude = .git, .tox, .venv, .eggs, build, dist, docs, tests
max-line-length = 120
ignore = E203,W503,W504
Pipenv-Skripteinstellungen Fügen Sie Skripte zu "Pipfile" hinzu.
[scripts]
flake8 = "flake8 ."
pipenv run flake8
Der Python-Code wird überprüft.
isort sortiert die Importe alphabetisch und unterteilt sie automatisch in Abschnitte.
isort Einstellungen
Sie können die Einstellungen in setup.cfg
definieren.
Im Folgenden wird die Länge einer Zeile auf 120 Zeilen begrenzt und die nicht überprüften Ordner angegeben.
Wenn Sie weitere Einstellungen vornehmen möchten, können Sie dies durch Überprüfen überprüfen.
[isort]
line_length = 120
skip = .git, .tox, .venv, .eggs, build, dist, docs
include_trailing_comma = true
multi_line_output = 3
'''
Pipenv-Skripteinstellungen Fügen Sie Skripte zu "Pipfile" hinzu.
[scripts]
isort = "isort . --atomic" # --Wenn Sie Atomic entfernen, wird dies nur ohne Formatierung überprüft.
pipenv run isort
Der Python-Code wird automatisch formatiert
mypy prüft, ob Sie Typhinweise schreiben können, die [PEP484] entsprechen (https://www.python.org/dev/peps/pep-0484/).
Mypy-Einstellungen
Sie können die Einstellungen in setup.cfg
definieren.
Im Folgenden wird das Fehlen einer Modultypdefinitionsdatei (Stub) ignoriert und Typanmerkungen erzwungen.
Wenn Sie weitere Einstellungen vornehmen möchten, können Sie dies durch Überprüfen überprüfen.
[mypy]
ignore_missing_imports = True
disallow_untyped_defs = True
Pipenv-Skripteinstellungen Fügen Sie Skripte zu "Pipfile" hinzu.
[scripts]
mypy = "mypy ."
pipenv run mypy
Der Python-Code wird überprüft.
Mit diesen Tools können Sie produktiver mit Python entwickeln. Wenn Sie Ihren Code auf GitHub verwalten, legen Sie in GitHub-Aktionen Folgendes fest. Beim Push wird automatisch eine statische Analyse durchgeführt. Wenn Sie einen Fehler erhalten, beheben Sie ihn und drücken Sie erneut.
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
Recommended Posts