Erstellen und Verteilen Ihres Pakets
Nachdem wir ein Python-Paket mit zusätzlichen Dateien erstellt und bestätigt haben, dass wir auf diese zugreifen können, wollen wir lernen, wie man dieses Paket erstellt und verteilt.
Aktualisieren des Setup-Skripts
Bevor wir das Paket erstellen, aktualisieren wir unsere setup.py
-Datei, um weitere Metadaten und Anforderungen aufzunehmen:
cd ~/project
cat > setup.py << 'EOF'
from setuptools import setup, find_packages
setup(
name="mypackage",
version="0.1.0",
packages=find_packages(),
## Include data files
package_data={
"mypackage": ["config.ini", "data/*.txt"],
},
## Dependencies
install_requires=[
"setuptools",
],
## Metadata
author="Your Name",
author_email="[email protected]",
description="A simple Python package with additional files",
keywords="sample, package, data",
url="https://example.com/mypackage",
classifiers=[
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
],
python_requires=">=3.6",
)
EOF
Erstellen von Source- und Wheel-Distributionen
Python-Pakete können in verschiedenen Formaten verteilt werden, aber die gebräuchlichsten sind:
- Source Distribution (sdist): Ein Tarball, der den Quellcode und zusätzliche Dateien enthält
- Wheel Distribution (bdist_wheel): Ein vorgefertigtes Paket, das ohne Erstellung installiert werden kann
Erstellen wir beide Arten von Distributionen:
## Make sure we have the latest build tools
pip install --upgrade setuptools wheel
## Build the distributions
python setup.py sdist bdist_wheel
Sie sollten eine Ausgabe sehen, die anzeigt, dass die Distributionen erstellt wurden, und neue Dateien sollten im Verzeichnis dist
erscheinen.
Überprüfen wir den Inhalt des Verzeichnisses dist
:
ls -l dist
Sie sollten mindestens zwei Dateien sehen:
- Eine
.tar.gz
-Datei (die Source Distribution)
- Eine
.whl
-Datei (die Wheel Distribution)
Installieren des Pakets aus den Distributionsdateien
Testen wir nun die Installation des Pakets aus einer der Distributionsdateien. Zuerst deinstallieren wir unsere Entwicklungsversion:
pip uninstall -y mypackage
Installieren wir nun die Wheel Distribution:
pip install dist/mypackage-0.1.0-py3-none-any.whl
Sie sollten eine Ausgabe sehen, die anzeigt, dass das Paket erfolgreich installiert wurde.
Überprüfen wir, ob das Paket installiert ist und ob wir weiterhin auf die zusätzlichen Dateien zugreifen können:
python -c "import mypackage; print(mypackage.read_config())"
Dies sollte den Inhalt der Datei config.ini ausgeben:
[config]
debug = true
log_level = INFO
Veröffentlichen Ihres Pakets
In einem realen Szenario würden Sie Ihr Paket typischerweise im Python Package Index (PyPI) veröffentlichen, damit andere es mit pip install mypackage
installieren können. Dies würde Folgendes beinhalten:
- Erstellen eines Kontos auf PyPI (https://pypi.org/)
- Verwenden von Tools wie
twine
, um Ihre Distributionen hochzuladen:pip install twine
twine upload dist/*
Für dieses Lab werden wir jedoch bei der lokalen Erstellung der Distributionen anhalten. Sie haben jetzt ein vollständiges Python-Paket mit zusätzlichen Dateien, das von anderen verteilt und installiert werden kann.
Zusammenfassung dessen, was Sie erstellt haben
- Ein Python-Paket mit Modulen und zusätzlichen Dateien
- Ein Setup-Skript, das diese Dateien in die Distribution aufnimmt
- Funktionen für den Zugriff auf diese Dateien von Ihrem Code aus
- Source- und Wheel-Distributionsdateien, die für die Verteilung bereit sind
Diese Struktur bietet eine solide Grundlage für jedes Python-Paket, das Sie in Zukunft erstellen möchten.