


So erstellen Sie in wenigen Minuten ein eigenes Python-Projekt
Warum Python-Paket?
Python unterstützt alle Arten der Ausführung; Sie können Python-Code direkt in einer Shell ausführen oder Ihren Code in eine Datei schreiben und später ausführen.
Manchmal ist es sehr schwierig, ein neues Python-Projekt zu starten. Ein Drehbuch schreiben? Ein Modul schreiben? Ein Paket schreiben?
Die beste Wahl ist das Micropiecies-Muster: Schreiben Sie ein Skript, schreiben Sie es also in einem Modul und dann in einem Paket neu.
Dieses Muster ermöglicht es Ihnen, das Rad nicht jeden Tag neu zu erfinden und den Code in Zukunft wiederzuverwenden.
Python-Paketstruktur
Python-Paket hat diese Struktur:
pkg ├── __init__.py ├── module1.py └── subpkg ├── __init__.py ├── __main__.py └── module2.py
Der Ordner pkg ist ein Paket, da er das Modul __init__.py enthält. Auch der Ordner subpkg ist ein Paket; ist ein Unterpaket von pkg.
module1.py und module2.py sind Module ihrer Pakete.
Das Modul __main__.py ermöglicht die Ausführung von Paketen.
Nur hier? Andere Dinge?
Wenn Sie Python-Entwickler werden, verwenden Sie normalerweise andere Tools.
Befolgen Sie in der Reihenfolge die folgenden Schritte für jeden Code, den Sie schreiben:
- Schreiben Sie Python-Code in Ihr Paket
- Verfolgen Sie Ihre Änderungen
- Testen Sie den gesamten Code, den Sie schreiben
- Fügen Sie Ihren Code in eine Umgebung ein, in der Sie ihn testen
- Übertragen Sie Ihren Code in das Remote-Repository
- Erstellen Sie Ihr Paket für die Verteilung
- Laden Sie Ihr Paket in PyPi hoch
Pipelines
Jede Änderung in Ihrem Code kann zu möglichen Fehlern führen. Um dies zu verwerfen, müssen wir jedes Mal das eigene Paket in der richtigen Umgebung testen.
Dazu werden einige Tools über Python selbst benötigt, wie Git, Docker und Make.
Dokumentation, Lizenz und andere allgemeine Dateien
Es reicht nicht aus, einfach ein Python-Paket zu erstellen und es sofort für alle verfügbar zu machen. Sie müssen auch darüber nachdenken, wie Sie es dokumentieren, es anderen Menschen kurz erklären, es lizenzieren und erklären, wie Sie es in das Projekt integrieren können.
Dies erfordert die Entwicklung von Dateien wie README, LICENSE, CODE_OF_CONDUCT und CONTRIBUTING.
Fügen Sie möglicherweise ein ÄNDERUNGSLOG hinzu, damit andere die an jeder Version vorgenommenen Änderungen verfolgen können.
Erstellen Sie ein Projekt in wenigen Minuten
Um alle Teile eines Python-Projekts zu realisieren, dauert es einige Stunden oder Tage.
Dafür gibt es aber ein Tool: psp.
Nachdem wir die Installationsanweisungen befolgt haben:
[test@ubuntu ~] sudo apt install -y python3 python3-pip git curl [test@ubuntu ~] curl -L https://github.com/MatteoGuadrini/psp/releases/download/v0.1.0/psp.deb -o psp.deb [test@ubuntu ~] sudo dpkg -i psp.deb
Führen Sie es aus:
[test@ubuntu ~] psp Welcome to PSP (Python Scaffolding Projects): 0.1.0 > Name of Python project: app > Do you want to create a virtual environment? Yes > Do you want to start git repository? Yes > Select git remote provider: Gitlab > Username of Gitlab: test_user > Do you want unit test files? Yes > Install dependencies: flask > Select documention generator: MKDocs > Do you want to configure tox? Yes > Select remote CI provider: CircleCI > Do you want create common files? Yes > Select license: Gnu Public License > Do you want to install dependencies to publish on pypi? Yes > Do you want to create a Dockerfile and Containerfile? Yes Python project `app` created at app
Überprüfen Sie nun das erstellte Python-Projekt:
[test@ubuntu ~] ls -lah app total 88K drwxrwxr-x 9 test test 440 Dec 20 14:48 . drwxrwxrwt 29 root root 680 Dec 20 14:49 .. drwxrwxr-x 2 test test 60 Dec 20 14:47 .circleci drwxrwxr-x 7 test test 200 Dec 20 14:47 .git -rw-rw-r-- 1 test test 381 Dec 20 14:47 .gitignore drwxrwxr-x 4 test test 80 Dec 20 14:47 .gitlab -rw-rw-r-- 1 test test 127 Dec 20 14:48 CHANGES.md -rw-rw-r-- 1 test test 5.4K Dec 20 14:48 CODE_OF_CONDUCT.md -rw-rw-r-- 1 test test 1.1K Dec 20 14:48 CONTRIBUTING.md -rw-rw-r-- 1 test test 190 Dec 20 14:48 Containerfile -rw-rw-r-- 1 test test 190 Dec 20 14:48 Dockerfile -rw-rw-r-- 1 test test 35K Dec 20 14:48 LICENSE.md -rw-rw-r-- 1 test test 697 Dec 20 14:48 Makefile -rw-rw-r-- 1 test test 177 Dec 20 14:48 README.md drwxrwxr-x 2 test test 60 Dec 20 14:47 docs -rw-rw-r-- 1 test test 19 Dec 20 14:47 mkdocs.yml -rw-rw-r-- 1 test test 819 Dec 20 14:48 pyproject.toml -rw-rw-r-- 1 test test 66 Dec 20 14:47 requirements.txt drwxrwxr-x 2 test test 80 Dec 20 14:47 tests -rw-rw-r-- 1 test test 213 Dec 20 14:47 tox.ini drwxrwxr-x 2 test test 80 Dec 20 14:46 app drwxrwxr-x 5 test test 140 Dec 20 14:46 venv
Beginnen Sie mit der Entwicklung des Pakets
Beginnen Sie mit der Entwicklung des Pakets, das der PSP-Befehl für unser Projekt erstellt hat.
[test@ubuntu ~] cd app/ && ls -lh app/ total 8.0K -rw-rw-r-- 1 test test 162 Dec 20 14:46 __init__.py -rw-rw-r-- 1 test test 204 Dec 20 14:46 __main__.py [test@ubuntu ~] vim app/core.py
from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "<p>Wow, this is my app!</p>"
Jetzt importieren Sie unsere hello_world-Funktion in die Datei __main__.py:
pkg ├── __init__.py ├── module1.py └── subpkg ├── __init__.py ├── __main__.py └── module2.py
[test@ubuntu ~] sudo apt install -y python3 python3-pip git curl [test@ubuntu ~] curl -L https://github.com/MatteoGuadrini/psp/releases/download/v0.1.0/psp.deb -o psp.deb [test@ubuntu ~] sudo dpkg -i psp.deb
Führen Sie unser Paket aus
Sie haben ein einfaches, aber organisiertes und leistungsstarkes Paket geschrieben, das zur Produktion und Verteilung bereit ist.
Testen Sie unser Paket.
[test@ubuntu ~] psp Welcome to PSP (Python Scaffolding Projects): 0.1.0 > Name of Python project: app > Do you want to create a virtual environment? Yes > Do you want to start git repository? Yes > Select git remote provider: Gitlab > Username of Gitlab: test_user > Do you want unit test files? Yes > Install dependencies: flask > Select documention generator: MKDocs > Do you want to configure tox? Yes > Select remote CI provider: CircleCI > Do you want create common files? Yes > Select license: Gnu Public License > Do you want to install dependencies to publish on pypi? Yes > Do you want to create a Dockerfile and Containerfile? Yes Python project `app` created at app
Und das Ergebnis ist:
Führen Sie Unit-Tests für das Paket aus
Testet jetzt auch den Python-Code auf dem Paket im Testordner:
[test@ubuntu ~] ls -lah app total 88K drwxrwxr-x 9 test test 440 Dec 20 14:48 . drwxrwxrwt 29 root root 680 Dec 20 14:49 .. drwxrwxr-x 2 test test 60 Dec 20 14:47 .circleci drwxrwxr-x 7 test test 200 Dec 20 14:47 .git -rw-rw-r-- 1 test test 381 Dec 20 14:47 .gitignore drwxrwxr-x 4 test test 80 Dec 20 14:47 .gitlab -rw-rw-r-- 1 test test 127 Dec 20 14:48 CHANGES.md -rw-rw-r-- 1 test test 5.4K Dec 20 14:48 CODE_OF_CONDUCT.md -rw-rw-r-- 1 test test 1.1K Dec 20 14:48 CONTRIBUTING.md -rw-rw-r-- 1 test test 190 Dec 20 14:48 Containerfile -rw-rw-r-- 1 test test 190 Dec 20 14:48 Dockerfile -rw-rw-r-- 1 test test 35K Dec 20 14:48 LICENSE.md -rw-rw-r-- 1 test test 697 Dec 20 14:48 Makefile -rw-rw-r-- 1 test test 177 Dec 20 14:48 README.md drwxrwxr-x 2 test test 60 Dec 20 14:47 docs -rw-rw-r-- 1 test test 19 Dec 20 14:47 mkdocs.yml -rw-rw-r-- 1 test test 819 Dec 20 14:48 pyproject.toml -rw-rw-r-- 1 test test 66 Dec 20 14:47 requirements.txt drwxrwxr-x 2 test test 80 Dec 20 14:47 tests -rw-rw-r-- 1 test test 213 Dec 20 14:47 tox.ini drwxrwxr-x 2 test test 80 Dec 20 14:46 app drwxrwxr-x 5 test test 140 Dec 20 14:46 venv
Speichern Sie unsere Werke
Jetzt können Sie die Entwicklung Ihrer Web-App speichern.
[test@ubuntu ~] cd app/ && ls -lh app/ total 8.0K -rw-rw-r-- 1 test test 162 Dec 20 14:46 __init__.py -rw-rw-r-- 1 test test 204 Dec 20 14:46 __main__.py [test@ubuntu ~] vim app/core.py
Testumgebung
Simulieren Sie mit Docker Ihre Produktionsumgebung:
from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "<p>Wow, this is my app!</p>"
Und das Ergebnis ist das gleiche:
Erstellen Sie die Pipeline mit make
Jetzt, nach der nächsten Entwicklung, können Sie die Pipeline mit Makefile:
verwenden
[test@ubuntu app] vim app/__main__.py
Veröffentlichen Sie das Paket auf PyPi
Wenn Sie möchten, können Sie jetzt Ihr Python-Paket auf PyPi veröffentlichen:
#! /usr/bin/env python3 # -*- encoding: utf-8 -*- # vim: se ts=4 et syn=python: # Generated by psp (https://github.com/MatteoGuadrini/psp) from .__init__ import __version__ print(f'app {__version__}') from .core import app app.run(debug=True)
Fazit
In weniger als fünf Minuten haben Sie ein Python-Projekt erstellt, bei dem Sie sich nur um die Entwicklung des Pakets selbst kümmern müssen.
In diesem Artikel verwendete Tools:
psp: Repository – Dokumente
git: Repository – Dokumente
Docker: Repository – Dokumente
make: Repository – Dokumente
Python: Repository – Dokumente
Das obige ist der detaillierte Inhalt vonSo erstellen Sie in wenigen Minuten ein eigenes Python-Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Fastapi ...

Verwenden Sie Python im Linux -Terminal ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Über Pythonasyncio ...

Verständnis der Anti-Crawling-Strategie von Investing.com Viele Menschen versuchen oft, Nachrichten von Investing.com (https://cn.investing.com/news/latest-news) zu kriechen ...

Laden Sie die Gurkendatei in Python 3.6 Umgebungsfehler: ModulenotFoundError: Nomodulenamed ...

Diskussion über die Gründe, warum Pipeline -Dateien beim Lernen und Verwendung von Scapy -Crawlern für anhaltende Datenspeicher nicht geschrieben werden können, können Sie auf Pipeline -Dateien begegnen ...
