Bild vom Autor | Canva
Als Programmierer verlassen wir uns oft auf verschiedene externe Bibliotheken, um verschiedene Probleme zu lösen. Diese Bibliotheken werden von erfahrenen Entwicklern erstellt und bieten Lösungen, die uns Zeit und Mühe sparen. Aber haben Sie jemals gedacht, „Kann ich auch meine eigenen benutzerdefinierten Bibliotheken erstellen?“ Die Antwort ist ja! Dieser Artikel erläutert die notwendigen Schritte, die Ihnen dabei helfen, dies zu erreichen, egal ob Sie ein professioneller Entwickler sind oder gerade erst anfangen. Vom Schreiben und Strukturieren Ihres Codes bis hin zur Dokumentation und Veröffentlichung deckt dieser Leitfaden alles ab.
Schritt-für-Schritt-Anleitung zum Erstellen einer Bibliothek
Schritt 1: Initialisieren Sie Ihr Projekt
Beginnen Sie mit der Erstellung eines Stammverzeichnisses für Ihr Projekt.
Schritt 2: Erstellen Sie ein Verzeichnis für Ihr Paket
Der nächste Schritt besteht darin, innerhalb des Verzeichnisses Ihres Projekts ein Verzeichnis für Ihr Paket zu erstellen.
multiples_library/
└──multiples/
Schritt 3: Hinzufügen __init.py__
Fügen Sie nun die __init.py__
im Verzeichnis Ihres Pakets. Diese Datei ist der primäre Indikator für Python, dass das Verzeichnis, in dem sie sich befindet, ein Paket ist. Sie enthält Initialisierungscode (sofern vorhanden) und wird automatisch ausgeführt, wenn ein Paket oder eines seiner Module importiert wird.
multiples_library/
└── multiples/
└──__init__.py
Schritt 4: Module hinzufügen
Jetzt müssen Sie dem Verzeichnis des Pakets Module hinzufügen. Diese Module bestehen normalerweise aus Klassen und Funktionen. Es empfiehlt sich, jedem Modul einen aussagekräftigen Namen zu geben, der seinen Zweck beschreibt.
multiples_library/
│
└── multiples/
├── __init__.py
├── is_multiple_of_two.py
└── is_multiple_of_five.py
Schritt 5: In die Module schreiben
In diesem Schritt definieren Sie die Funktionalität jedes Moduls. In meinem Fall beispielsweise:
Modul: multiple_of_two.py
def is_multiple_of_two(quantity):
""" Verify if a quantity is a a number of of two. """
return quantity % 2 == 0
Modul: multiple_of_five.py
def is_multiple_of_five(quantity):
""" Verify if a quantity is a a number of of 5. """
return quantity % 5 == 0
Schritt 6: setup.py hinzufügen
Der nächste Schritt besteht darin, eine weitere Datei namens setup.py zum Verzeichnis Ihres Pakets hinzuzufügen.
multiples_library/
│
├── multiples/
│ ├── __init__.py
│ ├── is_multiple_of_two.py
│ └── is_multiple_of_five.py
│
└──setup.py
Diese Datei enthält Metadaten zu Ihrem Paket, wie etwa Title, Abhängigkeiten, Autor, Model, Beschreibung und mehr. Sie definiert auch, welche Module enthalten sein sollen, und enthält Anweisungen zum Erstellen und Installieren des Pakets.
from setuptools import setup, find_packages
setup(
identify="multiples_library", # Substitute together with your package deal’s identify
model='0.1.0',
packages=find_packages(),
install_requires=(
# Checklist your dependencies right here
),
creator="Your identify",
author_email="Your e-mail",
description='A library for checking multiples of two and 5.',
classifiers=(
'Programming Language :: Python :: 3',
'License :: OSI Authorised :: MIT License', # License sort
'Working System :: OS Unbiased',
),
python_requires=">=3.6",
)
Schritt 7: Checks und andere Dateien hinzufügen (non-obligatory)
Dieser Schritt ist nicht notwendig, aber eine gute Vorgehensweise, wenn Sie eine fehlerfreie und professionelle Bibliothek erstellen möchten. In diesem Schritt ist die Projektstruktur endgültig und sieht ungefähr so aus:
multiples_library/
│
├── multiples/
│ ├── __init__.py
│ ├── is_multiple_of_two.py
│ └── is_multiple_of_five.py
│
│
├── exams/
│ ├── __init__.py
│ ├── test_is_multiple_of_two.py
│ └── test_is_multiple_of_five.py
│
├── docs/
│
├── LICENSE.txt
├── CHANGES.txt
├── README.md
├── setup.py
└── necessities.txt
Nun erkläre ich Ihnen, welchen Zweck die optionalen Dateien und Ordner haben, die im Stammverzeichnis aufgeführt sind:
- Checks/: Enthält Testfälle für Ihre Bibliothek, um sicherzustellen, dass sie sich wie erwartet verhält.
- Dokumente/: Enthält Dokumentation für Ihre Bibliothek.
- LICENSE.txt: Enthält die Lizenzbedingungen, unter denen andere Ihren Code verwenden können.
- ÄNDERUNGEN.txt: Protokolliert Änderungen an der Bibliothek.
- README.md: Enthält die Beschreibung Ihres Pakets und Installationsanweisungen.
- necessities.txt: Listet die externen Abhängigkeiten auf, die Ihre Bibliothek benötigt. Sie können diese Pakete mit einem einzigen Befehl installieren (
pip set up -r necessities.txt
).
Diese Beschreibungen sind ziemlich unkompliziert und Sie werden den Zweck der optionalen Dateien und Ordner in kürzester Zeit verstehen. Ich möchte jedoch ein wenig auf das optionale Testverzeichnis eingehen, um seine Verwendung zu verdeutlichen.
exams/ Verzeichnis
Es ist wichtig zu beachten, dass Sie ein Testverzeichnis innerhalb Ihres Stammverzeichnisses hinzufügen können, d. h. multiples_library
oder im Verzeichnis Ihres Pakets, d. h. multiples
. Die Entscheidung liegt bei Ihnen. Ich bevorzuge es jedoch, es auf der obersten Ebene im Stammverzeichnis zu belassen, da ich denke, dass dies eine bessere Möglichkeit ist, Ihren Code zu modularisieren.
Mehrere Bibliotheken helfen Ihnen beim Schreiben von Testfällen. Ich werde die bekannteste und meine persönliche Lieblingsbibliothek „unittest“ verwenden.
Unit-Check/s für is_multiple_of_two
Der/die Testfall(e) für dieses Modul ist/sind enthalten im test_is_multiple_of_two.py
Datei.
import unittest
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.be a part of(os.path.dirname(__file__), '..')))
from multiples.is_multiple_of_two import is_multiple_of_two
class TestIsMultipleOfTwo(unittest.TestCase):
def test_is_multiple_of_two(self):
self.assertTrue(is_multiple_of_two(4))
if __name__ == '__main__':
unittest.predominant()
Unit-Check/s für is_multiple_of_five
Der/die Testfall(e) für dieses Modul ist/sind enthalten im test_is_multiple_of_five.py
Datei.
import unittest
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.be a part of(os.path.dirname(__file__), '..')))
from multiples.is_multiple_of_five import is_multiple_of_five
class TestIsMultipleOfFive(unittest.TestCase):
def test_is_multiple_of_five(self):
self.assertTrue(is_multiple_of_five(75))
if __name__ == '__main__':
unittest.predominant()
Die oben aufgeführten Komponententests sind ziemlich unkompliziert, ich werde jedoch zur weiteren Verdeutlichung zwei Funktionen erläutern.
self.assertTrue(expression)
prüft, ob der Ausdruck „Wahr“ ergibt. Der Check ist nur erfolgreich, wenn das Ergebnis des Ausdrucks „Wahr“ ist.unittest.predominant()
Funktion wird aufgerufen, um alle in der Datei definierten Testfälle auszuführen.
Schritt 8: Verteilen Sie Ihr Paket mit PyPI
Um Ihre Bibliothek für andere leicht zugänglich zu machen, können Sie sie auf PyPI hochladen. Befolgen Sie diese Schritte, um Ihr Paket zu verteilen:
- Erstellen Sie ein Konto auf PyPI und aktivieren Sie die Zwei-Faktor-Authentifizierung.
- Erstellen Sie ein API-Token indem Sie einen Token-Namen vergeben und den Geltungsbereich auf „Gesamtes Konto“ auswählen. Kopieren Sie ihn dann sorgfältig, da er nur einmal vorkommt.
- Jetzt müssen Sie eine .pypirc-Datei erstellen.
Für MacOS/Linuxöffnen Sie das Terminal und führen Sie den folgenden Befehl aus: - Bearbeiten .pypirc Datei, indem Sie die folgende Konfiguration kopieren und einfügen:
- Stellen Sie sicher, dass Sie eine Datei „setup.py“ im Stammverzeichnis Ihres Projekts haben. Führen Sie den folgenden Befehl aus, um Verteilungsdateien zu erstellen:
- Twine ist ein Device zum Hochladen von Paketen auf PyPI. Installieren Sie Twine, indem Sie den folgenden Befehl ausführen:
- Laden Sie jetzt Ihr Paket auf PyPI hoch, indem Sie den folgenden Befehl ausführen:
Für Home windowsöffnen Sie die Eingabeaufforderung und führen Sie den folgenden Befehl aus:
cd %USERPROFILE%
sort NUL > .pypirc
Die Datei wird erstellt und befindet sich unter ~/.pypirc (bei MacOS/Linux) und unter %USERPROFILE%/.pypirc (bei Home windows).
(distutils)
index-servers =
pypi
(pypi)
username = __token__
password = pypi-
Ersetzen
python3 setup.py sdist bdist_wheel
Schritt 9: Installieren und Verwenden der Bibliothek
Sie können die Bibliothek mit dem folgenden Befehl installieren:
pip set up (your-package)
In meinem Fall:
pip set up multiples_library
Nun können Sie die Bibliothek wie folgt verwenden:
from multiples.is_multiple_of_five import is_multiple_of_five
from multiples.is_multiple_of_two import is_multiple_of_two
print(is_multiple_of_five(10))
# Outputs True
print(is_multiple_of_two(11))
# Outputs False
Einpacken
Kurz gesagt, das Erstellen einer Python-Bibliothek ist sehr interessant und ihre Verbreitung macht sie für andere nützlich. Ich habe versucht, alles, was Sie zum Erstellen einer Bibliothek in Python benötigen, so klar wie möglich abzudecken. Wenn Sie jedoch an irgendeinem Punkt nicht weiterkommen oder verwirrt sind, zögern Sie bitte nicht, im Kommentarbereich Fragen zu stellen.
Kanwal Mehreen Kanwal ist Ingenieurin für maschinelles Lernen und technische Autorin mit einer tiefen Leidenschaft für Datenwissenschaft und die Schnittstelle zwischen KI und Medizin. Sie ist Mitautorin des E-Books „Maximizing Productiveness with ChatGPT“. Als Google Era Scholar 2022 für APAC setzt sie sich für Vielfalt und akademische Exzellenz ein. Sie ist außerdem als Teradata Variety in Tech Scholar, Mitacs Globalink Analysis Scholar und Harvard WeCode Scholar anerkannt. Kanwal ist eine leidenschaftliche Verfechterin des Wandels und hat FEMCodes gegründet, um Frauen in MINT-Fächern zu stärken.