Python ist eine Programmiersprache, die in letzter Zeit sehr populär geworden ist. Sie wird von großen Unternehmen wie Google und Yahoo unterstützt und wurde bei der Entwicklung einiger ihrer berühmten Produkte verwendet. Einer der Gründe für ihre Beliebtheit ist der einfache Zugang zu Bibliotheken, eine ihrer herausragenden Eigenschaften. Die Verwendung und Erstellung dieser Pakete, ob sie nun von der Gemeinschaft stammen oder nicht, ist eines der größten Highlights von Python. Der einfache Zugang zu diesen Bibliotheken über PyPi ist einer der Gründe für seine Beliebtheit. Aber zu Beginn fragen Sie sich vielleicht, wie man sein Paket an die breite Masse verteilen kann? In diesem Tutorial stellen wir Ihnen eine Schritt-für-Schritt-Anleitung vor, wie Sie ein Python-Paket auf PyPi veröffentlichen können, so dass es für jeden Python-Nutzer verfügbar ist. Ich werde ein echtes, durchgängiges Beispiel verwenden, damit alle Schritte kristallklar sind.

Erstellen Sie ein einfaches Python-Projekt

Hinweis: Wenn Sie bereits ein Projekt eingerichtet haben, können Sie zum nächsten Teil übergehen. 

Nun, nur um ein Paket zu veröffentlichen, entscheiden sich einige Entwickler dafür, ihre Pakete zu bauen und sicherzustellen, dass sie perfekt funktionieren. Das ist auch eine gültige Option. Allerdings ist Pypi nicht allzu sehr auf die Qualität der Pakete bedacht, die sie auf ihrer Seite zulassen. Das bedeutet, dass Sie alles hochladen können, auch wenn es etwas besonders Unbrauchbares ist. Warum sollte man das tun? Nun, weil sie es können!

Dieses Tutorial verwendet ein einfaches Projekt namens example_package. Wir empfehlen, sich die Zeit zu nehmen, dieses Tutorial durchzuarbeiten, bevor Sie über Ihr eigenes Projekt nachdenken.

Um ein Paket zu erstellen, erstellen Sie einen Ordner, der genau so benannt ist, wie Sie Ihr Paket benennen möchten. Erstellen Sie dann die folgende Dateistruktur auf Ihrem System:

pypi_tutorial
└── src
    └── example_package
        ├── example.py
        └── __init__.py

init.py ist die Datei, die benötigt wird, um das Verzeichnis als Paket zu importieren. Sie diente dazu, die Klassen zu markieren, auf die der Benutzer Zugriff haben sollte. Sie sollte im Moment leer sein.

example.py ist ein Beispiel für ein Modul innerhalb des Pakets, das die Logik Ihres Pakets enthält, d.h. Funktionen, Klassen, Konstanten usw. Sie können hier alles einfügen, was Sie wollen, sei es ein Hallo-Welt-Programm oder etwas anderes. Hier werde ich einen Taschenrechner wie ein Programm erstellen:

def add_one(number):
    return number + 1

Das Paket erstellen

Nachdem wir die oben genannten Dateien erstellt haben, fügen wir nun die Dateien hinzu, die das Projekt für die Verteilung vorbereiten. Wechseln Sie in den Projektordner pypi_tutorial und führen Sie den folgenden Befehl aus:

#Linux/Mactouch LICENSE setup.cfg README.md pyproject.tomlmkdir tests
#Windowscd . > LICENSEcd . > setup.cfgcd . > README.mdcd . > pyproject.tomlmkdir tests

Wenn Sie fertig sind, sollte Ihr Projektverzeichnis wie folgt aussehen:

.
├── LICENSE
├── pyproject.toml
├── README.md
├── setup.cfg
├── src
│   └── example_package
│       ├── example.py
│       └── __init__.py
└── tests

Konfigurieren von Build-Tools

pyproject.toml ist wie ein Rezeptbuch, das von Bäckern an ihrem Arbeitsplatz verwendet wird. Es enthält alle Informationen, die zur Erstellung Ihres Projekts benötigt werden (einschließlich Bibliotheken, Module usw.). Da wir Setuptools und wheel in dem oben erstellten Projekt verwenden, werden wir die Verwendung dieser Bibliothek demonstrieren. Fügen Sie den folgenden Code in pyproject.toml ein:

[build-system]
requires = [
    "setuptools>=42",
    "wheel"
]
build-backend = "setuptools.build_meta"

hilft uns, die Pakete zu spezifizieren, die für die Erstellung Ihres Pakets benötigt werden.

build-backend ist das Python-Objekt, das den Build durchführen wird. Wenn Sie ein anderes Build-System verwenden würden, würde dies hier stehen.

Konfigurieren von Metadaten

Es gibt zwei Arten von Metadaten: Statische, die in der Datei setup.cfg gespeichert sind. Wie es heißt, sind sie statisch und ändern sich nicht je nach Situation, sind aber garantiert jedes Mal gleich. Dynamische Metadaten werden in der Datei setup.py gespeichert und funktionieren genau andersherum. Wir werden der Einfachheit halber die statische Methode verwenden.

Now Open setup.cfg and paste the following code:
[metadata]
name = pypi-tutorial-package
version = 0.0.1
author = Paper
author_email = papersharma675gmail.com
description = A small example package
long_description = file: README.md
long_description_content_type = text/markdown
url =
project_urls =
    Bug Tracker =
classifiers =
    Programming Language :: Python :: 3
    License :: OSI Approved :: MIT License
    Operating System :: OS Independent

[options]
package_dir =
    = src
packages = find:
python_requires = >=3.6

[options.packages.find]
where = src

Dies ist eine grundlegende Konfigurationsdatei für ein Paket. Das erste, was Sie hier tun sollten, ist, die Details entsprechend Ihrem Projekt zu ändern, d.h. den Namen, den Autor, die E-Mail, die Beschreibung, die erforderliche Python-Version usw. zu ändern. Wenn Sie danach noch mehr Anpassungen vornehmen wollen oder sich umsehen wollen, was Sie hier noch hinzufügen können, können Sie sich unter Pypa’s setuptools docs or Configuration parsers.

README & LICENSE erstellen

Hinweis: Das Hinzufügen dieser beiden Dateien ist wichtig. Überspringen Sie dies nicht!

Dieser Schritt ist ziemlich selbsterklärend, fügen Sie einfach alle Anweisungen oder Hinweise, die Sie dem Benutzer Ihres Pakets geben wollen, in die Datei README.md ein.

Es ist auch wichtig, dass jedes Paket, das in die PyPI oder sonst wohin hochgeladen wird, eine Lizenz enthält. Diese informiert die Nutzer, die Ihr Paket installieren, über die Bedingungen, unter denen sie Ihr Paket verwenden können. Wenn Sie Hilfe bei der Entscheidung brauchen, welche Lizenz Sie wählen sollten, besuchen Sie diese Website https://choosealicense.com/.

Erzeugung von Verteilungsarchiven

Als nächstes müssen wir für die Verteilung unseres Projekts Distributionsarchive erzeugen. Diese Archive sind die eigentlichen Dateien, die auf Pypi hochgeladen werden und dann von pip installiert werden können.

Vergewissern Sie sich zunächst, dass die Version von pip auf Ihrem System installiert ist:

python3 -m pip install --upgrade build

Wechseln Sie dann in das Projektverzeichnis pypi_tutorial, in dem sich pyproject.toml befindet, und führen Sie diesen Befehl aus:

python3 -m build

Wenn es erfolgreich war, sollten Sie ein Ergebnis wie dieses erhalten:

Wie Sie sehen können, hat es zwei Dateien erzeugt, und diese beiden sind unsere Archive! Die tar.gz-Datei ist ein Quellarchiv, während die .whl-Datei eine erstellte Distribution ist. Sie finden sie in dem neu erstellten dist-Ordner.

Hochladen des Archivs

Um nun unser Projekt auf Pypi hochzuladen, müssen Sie ein Konto auf Pypi registrieren, um ein Paket hochzuladen. Für dieses Tutorial werde ich TestPyPI verwenden, eine separate Instanz von Python, die zum Testen und Experimentieren mit Projekten wie diesem entwickelt wurde. Gehen Sie einfach zur Registrierung page und das Forum ausfüllen und den Prozess durchlaufen.

Hinweis: Auch wenn Sie Ihr Archiv in den echten Index hochladen möchten, können Sie denselben Prozess befolgen.

Nachdem Sie nun Ihr Konto erstellt und aktiviert haben, können wir mit dem Hochladen beginnen. Zunächst benötigen wir API-Tokens. Um diese zu erhalten, gehen Sie zum Ende der Seite mit den Kontoeinstellungen und klicken Sie auf die Schaltfläche API-Token hinzufügen.

Geben Sie hier den gewünschten Token-Namen ein und wählen Sie als Geltungsbereich das gesamte Konto (alle Projekte) aus, dann klicken Sie auf Token hinzufügen

Speichern Sie den Token an einem sicheren Ort, da er nur einmal angezeigt wird.

Nun, da wir endlich registriert sind, können wir twine verwenden, um unsere Archive hochzuladen. Sie können twine mit installieren:

python3 -m pip install --upgrade twine

Danach führen Sie twine aus, um die beiden Archive unter dist hochzuladen:

python3 -m twine upload --repository testpypi dist/*

Bei erfolgreicher Ausführung würden Sie ein Ergebnis wie dieses erhalten:

Wie Sie hier sehen können, ist das Projekt erstellt und hier verfügbar https://test.pypi.org/project/pypi-tutorial-package/0.0.1/. Jetzt können Sie es besuchen und installieren!

Testen des neu hochgeladenen Pakets

Sie können nun pip verwenden, um Ihr Paket zu installieren und zu überprüfen, ob es funktioniert. Führen Sie einfach den Befehl in Ihrem Terminal oder cmd aus:

pip install -i https://test.pypi.org/simple/ pypi-tutorial-package==0.0.1

Die Ausgabe würde wie folgt aussehen:

Lassen Sie uns nun einige Tests damit durchführen. Öffnen Sie den Python-Interpreter und führen Sie die folgenden Befehle aus:

python3

Dann importieren Sie das Paket:

from example_package import example
example.add_one(2)

Wenn Sie dies ausführen, erhalten Sie die folgenden Ergebnisse:

Letzte Worte

In diesem Artikel haben wir die Schritte zum Hochladen Ihres ersten Python-Pakets auf PyPI durchlaufen. Dies war ein guter Anfang für uns, um zu lernen, wie man Python-Pakete auf PyPI veröffentlicht. Es gibt immer noch eine Menge Dinge, die wir auf dem Weg herausfinden müssen. Dies ist ein einfacher Weg, Ihr Paket selbst zu erstellen. Wenn Sie Fragen haben, können Sie gerne einen Kommentar hinterlassen, und ich werde sie gerne beantworten.

Voici quelques tutoriels utiles que vous pouvez lire :