Veröffentlichen / Hochladen einer in Python erstellten Bibliothek in PyPI

Sobald Sie ein nützliches Tool erstellt haben, möchte ich, dass jeder es verwendet. In Python gibt es eine Site zum Registrieren eines Pakets mit dem Namen PyPI. Wenn Sie sich hier registrieren, können Sie es mit pip install usw. installieren.

In diesem Dokument möchte ich das Verfahren vorstellen.

Hinweis: Über die alte Methode

Wenn Sie bei Google suchen und denken, dass ..., werden Sie viele alte Methoden finden, die nicht mehr empfohlen werden. Bitte beachten Sie, dass das Folgende ein typisches Beispiel für die alte Methode ist.

Vorbereitungen

Vor der Veröffentlichung des Pakets in PyPI sind die folgenden Vorbereitungen erforderlich.

Registrieren eines Kontos bei PyPI

Erstellen Sie unten ein PyPI-Konto.

PyPI Manual user registration

Platzierung von ".pypirc" mit Kontoanmeldeinformationen

Wenn Sie es als störend empfinden, bei jedem Hochladen Ihren Benutzernamen und Ihr Passwort einzugeben, können Sie direkt unter Ihrem Home-Verzeichnis eine ".pypirc" erstellen und dort Ihre Anmeldeinformationen angeben.

[pypi]
username = <username>
password = <password>

Beachten Sie jedoch, dass diese Datei nicht verschlüsselt ist und der Inhalt im Klartext angezeigt wird.

Registrieren Sie sich bei PyPI

Registrieren wir uns jetzt bei PyPI. Nehmen wir zur Erklärung eine Bibliothek mit der folgenden Struktur als Beispiel.

YOUR-PROJECT-FOLDER
├── CHANGES.txt (OPTIONAL)
├── LICENSE.txt
├── README
├── setup.py
└── your_package (FOLDER)
    ├── __init__.py
    ├── ...
    └── subpackage (FOLDER)
        ├── __init__.py

Setup.py vorbereiten

Ein wichtiger Teil dieser Konfiguration ist setup.py, das den Paketierungsprozess der Bibliothek beschreibt. Der Inhalt wird wie folgt sein.

setup.py


from setuptools import setup


requires = ["requests>=2.14.2"]


setup(
    name='your_package',
    version='0.1',
    description='Awesome library',
    url='https://github.com/whatever/whatever',
    author='yourname',
    author_email='[email protected]',
    license='MIT',
    keywords='sample setuptools development',
    packages=[
        "your_package",
        "your_package.subpackage",
    ],
    install_requires=requires,
    classifiers=[
        'Programming Language :: Python :: 3.6',
    ],
)

Es gibt viele Beispiele für das Posten von GitHub-Archivlinks auf "download_url", aber es ist nicht erforderlich, es sei denn, GitHub fordert Sie zum Herunterladen an (dies sollte nicht erforderlich sein, wenn Sie es zuerst hochladen). Viele Bibliotheken erwähnen download_url auch nicht in setup.py.

Sie können tatsächlich viel mehr tun, aber im Grunde ist es in Ordnung, wenn die oben genannten Bedingungen erfüllt sind. Es gibt ein offizielles Beispielprojekt für Details, daher denke ich, dass Sie sich darauf beziehen sollten.

pypa/sampleproject

Vielleicht möchten Sie auch einen Blick auf die berühmte Bibliothek setup.py werfen. Mit dieser setup.py können Sie die Bibliothek verpacken.

Bibliotheksverpackung

Nachdem Sie setup.py erstellt haben, können Sie es mit dem folgenden Befehl verpacken.

python setup.py sdist

sdist bedeutet" Quelldistribution "und ist, wie der Name schon sagt, eine quellcodebasierte Distribution. Daher wird bei der Durchführung von "pip install" der auf der Beschreibung von "setup.py" basierende Erstellungsprozess auf der Benutzerseite ausgeführt.

Wenn dieser Erstellungsprozess je nach Betriebssystem, Python 2 und 3 usw. unterschiedlich ist, kann ein vorgefertigtes Paket verteilt werden. Dafür wird Wheel verwendet. Mit dem Aufkommen dieses Rades ist es fast unmöglich, unter Windows einen Fehler zu bekommen.

Um das Rad zu verwenden, installieren Sie zuerst das Rad.

pip install wheel

Nach dem Einbau des Rades können Sie die Option bdist_wheel verwenden, die zum Verpacken verwendet wird.

python setup.py bdist_wheel

Ich werde hier nicht ins Detail gehen, da die Verwendung von Rädern ebenfalls sehr umfangreich ist. Wenn Sie jedoch eine sichere Installation auf verschiedenen Plattformen bereitstellen möchten, sollten Sie das Radformat berücksichtigen.

Upload der Bibliothek

Laden wir es jetzt hoch. Installieren Sie zuerst die für das Hochladen erforderliche Schnur im Voraus.

pip install twine

Jetzt müssen Sie nur noch den gepackten Ordner hochladen.

twine upload dist/*

Referenz

Recommended Posts

Veröffentlichen / Hochladen einer in Python erstellten Bibliothek in PyPI
[Python] Erstellt eine Methode zum Konvertieren von Radix in 1 Sekunde
Ein Memorandum zur Registrierung der in Hy in PyPI geschriebenen Bibliothek
Entwickelte eine Bibliothek, um die Kindle-Sammlungsliste in Python abzurufen
Erstellt eine Python-Bibliothek, um komplexe Einschlüsse zu schreiben und auf einfach zu lesende Weise zu reduzieren
Ich habe eine Python-Bibliothek erstellt, um die API von LINE WORKS aufzurufen
Ich habe ein Passwort-Tool in Python erstellt.
So senden Sie ein visualisiertes Bild der in Python erstellten Daten an Typetalk
Verwendung der C-Bibliothek in Python
So löschen Sie einen Taple in einer Liste (Python)
Einbetten von Variablen in Python-Strings
Ich möchte mit Python ein Fenster erstellen
Verwendung der Python-Bildbibliothek in der Python3-Serie
So erstellen Sie eine JSON-Datei in Python
Ein Memo, das in einem Paket erstellt und in PyPI registriert wurde
Eine clevere Möglichkeit zur Zeitverarbeitung mit Python
Schritte zum Entwickeln einer Webanwendung in Python
So fügen Sie Python ein Modul hinzu, das Sie in Julialang eingefügt haben
So benachrichtigen Sie Discord-Kanäle in Python
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
[Python] Erstellt eine Klasse, um mit pyaudio Sinuswellen im Hintergrund zu spielen
Ich habe PyQCheck, eine Bibliothek, die QuickCheck mit Python ausführen kann, in PyPI registriert.
Analysieren Sie eine JSON-Zeichenfolge, die in eine Datei in Python geschrieben wurde
So konvertieren / wiederherstellen Sie einen String mit [] in Python
Ich möchte eine Variable in einen Python-String einbetten
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
[Python] So erweitern Sie Variablen in einer Zeichenfolge
Erstellen Sie ein Plug-In, das Python Doctest auf Vim ausführt (2)
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Ich möchte eine Datei mit Python zufällig testen
Beachten Sie beim Initialisieren einer Liste in Python
Erstellt eine Python-Bibliothek DateTimeRange, die Zeitbereiche verarbeitet
[Python] Eine praktische Bibliothek, die Kanji in Hiragana konvertiert
Einführung in die lineare Algebra mit Python: A = LU-Zerlegung
[GCF + Python] So laden Sie Excel in GCS hoch und erstellen eine neue Tabelle in BigQuery
Machen Sie einen Screenshot in Python
Erstellen Sie eine Funktion in Python
So löschen Sie stdout in Python
Ein Weg zum mittleren Python
Melden Sie sich auf der Website in Python an
Laden Sie eine Datei in Dropbox hoch
Überschreiben Sie Bibliotheksfunktionen in Python
Sprechen mit Python [Text zu Sprache]
Wie man in Python entwickelt
Zeichne ein Herz in Python
Post an Slack in Python
So debuggen Sie eine Standard-Python-Bibliothek in Visual Studio
Veröffentlichung einer Bibliothek, die Zeichendaten in Python-Bildern verbirgt
So importieren Sie die in EFS eingerichtete Python-Bibliothek in Lambda
Eine Geschichte darüber, wie man einen relativen Pfad in Python angibt.
Verwendung der Methode __call__ in der Python-Klasse
Ändern Sie das Standardausgabeziel in eine Datei in Python
So importieren Sie Dateien in Python an eine beliebige Stelle
Eine einfache Möglichkeit, mehrere for-Schleifen in Python zu vermeiden
Ich habe versucht, meine eigene Python-Baseballbibliothek bei Packaging & PyPI zu veröffentlichen
Eine Standardmethode zum Entwickeln und Verteilen von Paketen in Python
Ich habe versucht "Wie man eine Methode in Python dekoriert"