Grundlagen zum Teilen von Python-Code

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Zu einem gewissen Zeitpunkt möchtest du deinen Code an jemand anderen geben, möglicherweise nur an einen Mitarbeiter. In diesem Abschnitt wird die am einfachsten Methode dazu beschrieben. Für detailliertere Informationen musst du die Python Packaging User Guide konsultieren.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") python/AdvancedTopicsGroup -.-> python/decorators("Decorators") subgraph Lab Skills python/comments -.-> lab-132740{{"Grundlagen zum Teilen von Python-Code"}} python/tuples -.-> lab-132740{{"Grundlagen zum Teilen von Python-Code"}} python/importing_modules -.-> lab-132740{{"Grundlagen zum Teilen von Python-Code"}} python/standard_libraries -.-> lab-132740{{"Grundlagen zum Teilen von Python-Code"}} python/constructor -.-> lab-132740{{"Grundlagen zum Teilen von Python-Code"}} python/decorators -.-> lab-132740{{"Grundlagen zum Teilen von Python-Code"}} end

Erstellen einer setup.py-Datei

Fügen Sie eine setup.py-Datei im Verzeichnis /home/labex/project in das oberste Verzeichnis Ihres Projekts hinzu.

## setup.py
import setuptools

setuptools.setup(
    name="porty",
    version="0.0.1",
    author="Ihr Name",
    author_email="[email protected]",
    description="Praktischer Python-Code",
    packages=setuptools.find_packages(),
)

Erstellen von MANIFEST.in

Wenn es zusätzliche Dateien für Ihr Projekt gibt, geben Sie diese in einer MANIFEST.in-Datei an. Beispiel:

## MANIFEST.in
include *.csv

Legen Sie die MANIFEST.in-Datei im gleichen Verzeichnis wie setup.py ab.

Erstellen einer Quellverteilung

Um eine Verteilung Ihres Codes zu erstellen, verwenden Sie die setup.py-Datei. Beispiel:

$ python setup.py sdist

Dies erzeugt eine .tar.gz- oder .zip-Datei im Verzeichnis dist/. Diese Datei können Sie nun an andere weitergeben.

Installieren Ihres Codes

Andere können Ihren Python-Code mit pip auf die gleiche Weise installieren wie andere Pakete. Sie müssen einfach die im vorherigen Schritt erstellte Datei angeben. Beispiel:

$ python -m pip install porty-0.0.1.tar.gz

Kommentar

Die obigen Schritte beschreiben die absolut minimalsten Grundlagen für das Erstellen eines Python-Code-Pakets, das Sie an andere Personen geben können. In der Realität kann es je nach Drittanbieterabhängigkeiten, ob Ihre Anwendung fremden Code (z.B. C/C++) enthält, usw. viel komplizierter sein. Dies liegt außerhalb des Rahmens dieses Kurses. Wir haben nur einen winzigen ersten Schritt getan.

Übung 9.5: Erstellen eines Pakets

Nehmen Sie den in Übung 9.3 erstellten porty-app/-Code und sehen Sie, ob Sie die hier beschriebenen Schritte wiederholen können. Fügen Sie speziell eine setup.py-Datei und eine MANIFEST.in-Datei zum obersten Verzeichnis hinzu. Erstellen Sie eine Quellverteilungsdatei, indem Sie python setup.py sdist ausführen.

Als letzten Schritt sehen Sie, ob Sie Ihr Paket in eine Python-Virtuelle Umgebung installieren können.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Distribution-Labor abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.