Konstruktionsverfahren für die Python-Projektumgebung (für Windows)

Einführung

Dieser Artikel dient zum Erstellen einer Entwicklungsumgebung für "Python + Pipenv + VS Code".

Es wurde von einem Ingenieur mit einjähriger Erfahrung in Python geschrieben, sodass Sie die Kultur von Python möglicherweise nicht verstehen können, aber bitte beachten Sie dies.

Motivation

Die Paketverwaltung ist erforderlich, wenn der Quellcode als Team verwaltet wird. Durch das Erstellen derselben Betriebsumgebung werden die Kommunikationskosten gesenkt.

So eine natürliche Sache. .. Ich denke, dass.

Paketverwaltung ist für mich alltäglich, da ich nur App-Entwicklung betrieben habe, Python jedoch nicht nur auf App-Entwicklung beschränkt ist, sondern auch für die Datenwissenschaft und die Automatisierung kleiner Aufgaben verwendet wird. Daher besteht Bedarf an Paketverwaltung. Mir ist aufgefallen, dass die Wahrnehmung von für jeden Entwickler unterschiedlich ist.

Die Tatsache, dass der Standard-Paketmanager in der Python-Welt nicht existiert (was ich denke), führt auch dazu, dass das Image der Paketverwaltung von Entwickler zu Entwickler unterschiedlich ist.

Im Fall von Javascript gibt es npm und Garn, und ich denke, es ist die Kultur von Javascript, Code unter der Voraussetzung der Paketverwaltung zu schreiben. Auf der anderen Seite hat Python Pip als berühmten Paketmanager, aber für mich, der npm verwendet hat, fühlt sich pip sehr schlecht an.

Ich habe kürzlich pipenv in mein Team eingeführt und festgestellt, dass es funktioniert. Daher werde ich schreiben, wie eine Python-Projektumgebung mit pipenv erstellt wird.

Quelle der in diesem Artikel vorgestellten Projektstruktur

Wenn Sie sofort ein Basisprojekt mit Pipenv-Konfiguration möchten, finden Sie es auf github.

PythonProjectStarterKit

Wenn Sie Pipenv bereits auf dem globalen Pip installiert haben, können Sie sofort versuchen, das oben genannte Repository zu klonen und einen Komponententest auszuführen. Die Installationsmethode ist wie folgt.

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

Über Python

Vanilla vs Anaconda

Es scheint, dass das Standardinstallationsprogramm Python "Vanilla Python" heißt. Wir gehen davon aus, dass Python mit dem Official Page Installer installiert wird.

Anaconda ist praktisch, aber meiner Meinung nach macht es für die Ausführungsumgebung nicht viel Sinn. Wenn Sie ein App-Entwickler sind, müssen Sie die Mindestkonfiguration der Python-Ausführungsumgebung kennen.

Es scheint gut zu sein, Vanilla für die Anwendungsentwicklung und Anaconda für die Datenwissenschaft zu kennen. Die folgenden Artikel waren sehr hilfreich beim Erstellen der Python-Umgebung.

Python-Umgebungskonstruktions-Windows

Wenn Sie diesen Artikel lesen und die Python-Umgebung neu erstellen, wird empfohlen, die von Ihnen verwendete Bibliothek in einer Textdatei auszugeben.

pip freeze > requirememts.txt

Aufbau einer Python-Umgebung

Laden Sie das Standardinstallationsprogramm herunter

Wählen Sie auf der offiziellen Python-Seite "Dateien> webbasiertes Windows x86-64-Installationsprogramm" aus und wählen Sie Laden Sie das Installationsprogramm herunter.

Installation

Wenn Sie das Installationsprogramm ausführen, wird das Kontrollkästchen "Möchten Sie den Pfad zu Python zur Systemumgebungsvariablen hinzufügen?" Angezeigt. Überprüfen Sie dies unbedingt vor der Installation.

Bestätigung

Öffnen Sie eine Eingabeaufforderung und gehen Sie wie folgt vor:

python --version

Umweltbau von Pipenv

Das Verfahren zur Verwendung von pipenv wird unten erläutert.

Installation

Sie können es mit dem folgenden Befehl verwenden.

pip install pipenv

Wenn die Installation abgeschlossen ist, drücken Sie den Befehl pipenv, um eine Liste der Befehle anzuzeigen, die mit pipenv ausgeführt werden können.

Festlegen von Systemumgebungsvariablen

Das Standardverhalten von pipenv besteht darin, eine virtuelle Umgebungsressource in ".virtualenvs" im Verzeichnis USER zu erstellen, das vom Projektverzeichnis getrennt ist. Dies ist unpraktisch, da beim Überprüfen der Bibliothek der virtuellen Umgebung nicht sofort darauf zugegriffen werden kann. Aktivieren Sie daher die Einstellung, um in den Einstellungen der Systemumgebungsvariablen eine virtuelle Umgebung im Projekt zu erstellen.

PIPENV_VENV_IN_PROJECT=true

Das Obige ist die Umgebungskonstruktion zur Vorbereitung eines Projekts.

So erstellen Sie ein neues Projekt

.vscode Einstellungen

Hinweis

Wenn Sie ".vscode" festlegen, zeigt VSCode möglicherweise den Dialog "Möchten Sie installieren?" An. Wir empfehlen, nicht über diesen Dialog zu installieren.

Der Grund dafür ist, dass die Pip-Datei nicht aktualisiert wird, da das automatisch ausgeführte Skript global mit pip anstelle von pipenv installiert wird, sofern nicht die unten beschriebene Methode zum Hinzufügen von Paketen verwendet wird. Installieren Sie Linter und Formatter mit pipenv.

Beschreibung der Datei settings.json

Um die Linter- und Formatter-Einstellungen für vscode freizugeben, sind die folgenden Einstellungen in .vscode / settings.json erforderlich.

{
  "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
}

Folgendes ist mit den obigen Einstellungen möglich.

Über die .env-Datei

Um Umgebungsvariablen beim Ausführen von Python hinzuzufügen, schreiben Sie Folgendes in die ENV-Datei. Der Standort befindet sich direkt unter dem Projekt.

PYTHONPATH=".\src;"

PYTHONPATH fügt einen Ort hinzu, an dem nach Modulen gesucht werden kann, wenn Python ausgeführt wird. Sie können mehrere durch Semikolon getrennte Elemente schreiben.

Über Schwarz

Formatierer schwarz ausgewählt. black selbst behauptet zu sein "Black ist der kompromisslose Python-Code-Formatierer." Gemäß

Die Einstellungen wurden ausführlich über das Format besprochen. Verwenden Sie es daher unverändert. Machen wir uns keine Gedanken mehr über das Format? Das spart Zeit und bringt vor allem Energie ein.

... anscheinend ...

Wenn daher ein Regelkonflikt mit flake8 besteht, wird Schwarz Vorrang eingeräumt. Lassen Sie flake8 die widersprüchlichen Regeln ignorieren.

python.linting.flake8Args ignoriert einige Regeln von flake8, um Regelkonflikte mit Schwarz zu vermeiden. Zum Beispiel ist "--ignore = E501" eine Einstellung, mit der die Regel von Flake8 mit maximal 79 Zeichen pro Zeile ignoriert wird (Schwarz hat maximal 88 Zeichen pro Zeile). Ich denke, es gab einige andere Regeln, die mit Schwarz in Konflikt standen, als die hier als Beispiel festgelegte. Wenn Sie jedoch einen Flake8-Fehler in Bezug auf das Format erhalten, fügen Sie ihn bitte jedes Mal hinzu.

Einführung von pipenv

Führen Sie den folgenden Befehl aus. Die Python-Version kann feiner eingestellt werden. Wenn die entsprechende Version von Python nicht installiert ist, tritt ein Fehler auf. In diesem Fall installieren Sie bitte über das Standardinstallationsprogramm.

pipenv --python 3

Wenn Sie den Befehl ausführen, werden die folgenden Dateien zum Projektverzeichnis hinzugefügt.

Paket hinzugefügt

Für Pakete, die zur Laufzeit verwendet werden

pipenv install [package]

Für Pakete, die während der Entwicklung verwendet werden, wie z. B. Linter und Testwerkzeuge

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

--dev ist eine Option zur Verwaltung als Entwicklungspaket. --pre ist eine Option, mit der vorveröffentlichte Pakete installiert werden können. Schwarz wird auf der offiziellen Seite als "HINWEIS: Dies ist ein Beta-Produkt" beschrieben. Wenn keine Voroption vorhanden ist, tritt ein Fehler auf, der darauf hinweist, dass die Aktualisierung von Pipfile.lock fehlgeschlagen ist.

Projekt klonen

Wenn das geklonte Projekt "Pipfile" hat, generieren Sie ".venv" mit dem folgenden Befehl und installieren Sie dort die erforderlichen Module.

//Pipfile[packages]Fügen Sie das in beschriebene Paket hinzu
pipenv install

//Pipfile[dev-packages]Fügen Sie das in beschriebene Paket hinzu
pipenv install --dev --pre

Aktivieren Sie pipenv in dem Projekt, das in der Datei "resources.txt" verwaltet wird

Sie können das Paket von require.txt mit dem Argument r installieren.

pipenv install -r ./requirements.txt

Standardverzeichnisstruktur für Python-Projekte

Ich denke, es ist eine sprachunabhängige Kultur, den Quellcode in das Verzeichnis src zu stellen. Die Verzeichnisstruktur unter src ist wie folgt.

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

Um foo_module.py aus test_foo_modules.py zu importieren, schreiben Sie wie folgt.

import package.foo_module

Ausführung / Skriptregistrierung

Der Test kann mit dem folgenden Befehl ausgeführt werden:

//Zur Stapelausführung
pipenv run python -m unittest discover src -v

Wenn Sie "__init __. Py" nicht in das Testverzeichnis einfügen, tritt ein Fehler auf, da der Testcode mit dem obigen Befehl nicht von unittest gefunden werden kann.

Darüber hinaus können häufig verwendete Befehle als Skripte registriert werden. Fügen Sie der Pipfile die folgenden Elemente hinzu.

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

Mit dieser Einstellung können Sie mit dem folgenden Befehl testen.

pipenv run test

Die zweite hinzugefügte Isort ist ein auf Importe spezialisierter Formatierer. Da das bisher eingeführte Schwarz den Import nicht berührt, bleibt das Importformat der Sortierung überlassen.

pipenv run isort

Das ist alles für das Verfahren zum Erstellen der Umgebung für ein Python-Projekt.

Recommended Posts

Konstruktionsverfahren für die Python-Projektumgebung (für Windows)
Installationsverfahren für Python 3.6 [für Windows]
Aufbau einer Python-Umgebung (Windows 10 + Emacs)
Aufbau einer Python-Umgebung für Mac
Konstruktionsverfahren für die Anaconda3-Python-Umgebung
Python3-Umgebungskonstruktion (für Anfänger)
Erstellen einer Python-Umgebung unter Windows 7
Vorgehensweise zum Erstellen einer CDK-Umgebung unter Windows (Python)
Python-Umgebungskonstruktionsnotiz unter Windows 10
Aufbau einer Anaconda-Python-Umgebung unter Windows 10
[Python3] Aufbau der Entwicklungsumgebung << Windows Edition >>
Python3 TensorFlow für Mac-Umgebungskonstruktion
Python Windows-Umgebung
Umgebungskonstruktion (Python)
Python-Umgebungskonstruktion
Python - Umgebungskonstruktion
Aufbau einer Python-Umgebung
Memo zum Erstellen einer Python-Umgebung mit Docker unter Windows 10 Home
Konstruktionsverfahren für die Python (Anaconda) -Entwicklungsumgebung (SpringToolsSuites) _2020.4
Aufbau einer VScode-Umgebung (Windows 10, Python, C ++, C, Git)
Verfahren zur Erstellung der Umgebung: Ubuntu + Apache2 + Python + Pyramid
Erstellen einer Python-Entwicklungsumgebung für Windows + gVim + Poetry
Bau der Django-Projektumgebung
Homebrew Python Umgebung Konstruktion
Aufbau einer Python-Entwicklungsumgebung
python2.7 Konstruktion der Entwicklungsumgebung
Python-Umgebungskonstruktion @ Win7
Installieren Sie Python (für Windows)
Wartung der Python-Umgebung für Projekte
VS Code + Azure-Funktionen + Python-Umgebungskonstruktionsverfahren
Aufbau einer Python-Umgebung (Anaconda + VSCode) @ Windows10 [Version Januar 2020]
Bildverarbeitung mit Python Environment Setup für Windows
Verfahren zum Erstellen einer Python-Isolationsumgebung (venv-Umgebung)
Bereiten Sie eine Python-Entwicklungsumgebung für jedes Projekt in einer Windows-Umgebung vor (VSCode + virtualEnvWrapper + Pylint).
Python + Anaconda + Pycharm-Umgebungskonstruktion
Umgebungskonstruktionsverfahren zum Betrieb von Chrome ohne Installation von Python unter Windows (unter Verwendung von Selen)
CI-Umgebungskonstruktion ~ Python Edition ~
Erstellen Sie eine Python-Umgebung unter Windows
Konstruktionsverfahren für die Google App Engine / Python-Entwicklungsumgebung (Ende 2014)
Python-Umgebungskonstruktion und TensorFlow
Erstellen Sie eine Python-Umgebung mit Windows
[Python] Django-Umgebungskonstruktion (pyenv + pyenv-virtualenv + Anaconda) für macOS
Verfahren zum Konvertieren einer Python-Datei in eine Exe aus der Ubunts-Umgebungskonstruktion
[MEMO] [Entwicklung der Entwicklungsumgebung] Python
[Zum Organisieren] Python-Entwicklungsumgebung
[Tensorflow] Aufbau der Tensorflow-Umgebung unter Windows 10
Django Projekt Entwicklungsumgebung Bau
Umgebungskonstruktion von Python2 & 3 (OSX)
Ansible Umgebungskonstruktion Für Mac
Installieren Sie dlib für Python (Windows)
OpenJTalk unter Windows 10 (Sprechen Sie Japanisch mit Python aus der Umgebungskonstruktion)
Umgebungskonstruktion von Python und OpenCV
Beginnen Sie mit Python! ~ ① Umweltbau ~
Python + Unity Verbesserte Erstellung von Lernumgebungen
Python2.7-Installation in einer Windows 32-Bit-Umgebung
[Django] Memorandum of Environment Construction Procedure