LESEN SIE DIESES ERSTE https://packaging.python.org/en/latest/current.html
Empfehlungen für das Installationstool
- Verwenden Sie pip, um Python-Pakete von PyPI zu installieren.
- Verwenden Sie virtualenv oder pyvenv, um anwendungsspezifische Abhängigkeiten von einer gemeinsam genutzten Python-Installation zu isolieren.
- Verwenden Sie Pip Wheel, um einen Cache mit Radverteilungen zu erstellen, um> nachfolgende Installationen zu beschleunigen.
- Wenn Sie nach der Verwaltung vollständig integrierter plattformübergreifender Software-Stacks suchen, sollten Sie Buildout (hauptsächlich für die Webentwicklungs-Community) oder Hashdist oder Conda (beide hauptsächlich für die wissenschaftliche Community) in Betracht ziehen.
Empfehlungen für das Verpackungstool
- Verwenden Sie setuptools, um Projekte zu definieren und Quellverteilungen zu erstellen.
- Verwenden Sie die im Radprojekt verfügbare Erweiterung bdist_wheel setuptools, um Räder zu erstellen. Dies ist besonders nützlich, wenn Ihr Projekt binäre Erweiterungen enthält.
- Verwenden Sie Schnur zum Hochladen von Distributionen auf PyPI.
Diese Antwort ist gealtert, und tatsächlich gibt es einen Rettungsplan für die Python-Verpackungswelt
Räder Weg
Ich qoute pythonwheels.com hier:
Was sind Räder?
Räder sind der neue Standard der Pythonverteilung und sollen Eier ersetzen. Unterstützung wird in pip> = 1.4 und setuptools> = 0.8 angeboten.
Vorteile von Rädern
- Schnellere Installation für reine Python- und native C-Erweiterungspakete.
- Vermeidet die Ausführung von willkürlichem Code für die Installation. (Vermeidet setup.py)
- Für die Installation einer C-Erweiterung ist kein Compiler unter Windows oder OS X erforderlich.
- Ermöglicht ein besseres Caching zum Testen und zur kontinuierlichen Integration.
- Erstellt im Rahmen der Installation .pyc-Dateien, um sicherzustellen, dass sie mit dem verwendeten Python-Interpreter übereinstimmen.
- Konsistentere Installationen über Plattformen und Maschinen hinweg.
Die vollständige Geschichte der korrekten Python-Verpackung (und der Räder) finden Sie unter package.python.org
Conda Weg
Für das wissenschaftliche Rechnen (dies wird auch auf package.python.org empfohlen, siehe oben) würde ich die Verwendung von CONDA-Paketen in Betracht ziehen, die als Dienst eines Drittanbieters angesehen werden können, der auf PyPI- und Pip-Tools aufbaut. Es funktioniert auch hervorragend beim Einrichten einer eigenen Version von binstar, sodass ich mir vorstellen kann, dass dies den Trick für eine ausgefeilte benutzerdefinierte Verwaltung von Unternehmenspaketen darstellt.
Conda kann in einem Benutzerordner installiert werden (keine Superuser-Berechtigungen) und funktioniert wie mit Magie
conda installieren
und leistungsstarke virtuelle Env-Erweiterung.
Eier Weg
Diese Option stand im Zusammenhang mit python-distribute.org und ist (sowie die Website) weitgehend veraltet. Lassen Sie mich Sie auf eines der gebrauchsfertigen und dennoch kompakten Beispiele für setup.py verweisen, die mir gefallen:
- Ein sehr praktisches Beispiel / eine Implementierung zum Mischen von Skripten und einzelnen Python-Dateien in setup.py finden Sie hier
- Noch besser von Hyperopt
Dieses Zitat stammt aus dem Handbuch zum Status von setup.py und gilt weiterhin:
- setup.py weg!
- distutils weg!
- verteilen weg!
- pip und virtualenv hier bleiben!
- Eier ... weg!
Ich füge noch einen Punkt hinzu (von mir)
Ich würde empfehlen, sich mit dem Verpackungs-Ökosystem vertraut zu machen (aus dem Leitfaden von gotgenes), bevor Sie versuchen, sinnlos zu kopieren.
Die meisten Beispiele im Internet beginnen mit
from distutils.core import setup
Dies unterstützt jedoch beispielsweise nicht das Erstellen einer Ei- Python-Datei setup.py bdist_egg (sowie einiger anderer alter Funktionen), die in verfügbar waren
from setuptools import setup
Und der Grund ist, dass sie veraltet sind .
Nun laut Anleitung
Warnung
Bitte verwenden Sie das Distribute-Paket anstelle des Setuptools-Pakets, da dieses Paket Probleme aufweist, die behoben werden können und nicht.
veraltete setuptools sollen durch distutils2 ersetzt werden , die "Teil der Standardbibliothek in Python 3.3 sein werden". Ich muss sagen, ich mochte Setuptools und Eier und war noch nicht vollständig von der Bequemlichkeit von distutils2 überzeugt. Es benötigt
pip install Distutils2
und zu installieren
python -m distutils2.run install
PS
Das Verpacken war nie trivial (man lernt dies, indem man versucht, ein neues zu entwickeln), daher gehe ich davon aus, dass viele Dinge aus gutem Grund verschwunden sind. Ich hoffe nur , es diesmal wird richtig gemacht wird .