Heim > Backend-Entwicklung > Python-Tutorial > So erstellen Sie in wenigen Minuten ein eigenes Python-Projekt

So erstellen Sie in wenigen Minuten ein eigenes Python-Projekt

Barbara Streisand
Freigeben: 2024-12-29 08:58:10
Original
1001 Leute haben es durchsucht

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
Nach dem Login kopieren
Nach dem Login kopieren

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:

  1. Schreiben Sie Python-Code in Ihr Paket
  2. Verfolgen Sie Ihre Änderungen
  3. Testen Sie den gesamten Code, den Sie schreiben
  4. Fügen Sie Ihren Code in eine Umgebung ein, in der Sie ihn testen
  5. Übertragen Sie Ihren Code in das Remote-Repository
  6. Erstellen Sie Ihr Paket für die Verteilung
  7. 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
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

Ü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
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Wow, this is my app!</p>"

Nach dem Login kopieren
Nach dem Login kopieren

Jetzt importieren Sie unsere hello_world-Funktion in die Datei __main__.py:

pkg
├── __init__.py
├── module1.py
└── subpkg
    ├── __init__.py
    ├── __main__.py
    └── module2.py
Nach dem Login kopieren
Nach dem Login kopieren
[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
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

Und das Ergebnis ist:

How to create own Python project in inutes

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
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

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

Nach dem Login kopieren
Nach dem Login kopieren

Und das Ergebnis ist das gleiche:
How to create own Python project in inutes

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
Nach dem Login kopieren

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)

Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage