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.
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.
distutils
in setup.py
python setup.py register
oder python setup.py sdist upload
twine
zu verwenden. Verwenden Sie dieses Tool.Vor der Veröffentlichung des Pakets in PyPI sind die folgenden Vorbereitungen erforderlich.
Erstellen Sie unten ein PyPI-Konto.
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 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
vorbereitenEin 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',
],
)
name
: Der Name des Pakets. Entspricht dem tatsächlichen Paketordnernamenversion
: Die Version des Pakets. Sie müssen dies beim Aktualisieren ändern.packages
: Geben Sie die zu installierenden Pakete an. Beachten Sie, dass Sie ein Unterpaket angeben müssen, wenn Sie es haben. Dieses Paket ist alles! In diesem Fall benutze find_packages
.install_requires
: Listet alle Bibliotheken auf, von denen das Paket abhängt. Die Notation entspricht dem Format, das durch "Pip Freeze" erhalten wirdclassifiers
/ keywords
: Sie können Tags und Schlüsselwörter schreiben, wenn Sie nach Paketen suchen. Die Liste der Klassifizierer lautet hier.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.
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.
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.
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/*
Recommended Posts