Fragen zu Setuptools und Alternativen

Ich habe in letzter Zeit eine Menge Setuptools gesehen, die auf die Internetseiten geschlagen haben. Zuletzt las ich James Bennettsuf Verpackupost auf warum sollte niemand setuptools verwenden. Aus meiner Zeit in #python auf Freenode weiß ich, dass es ein paar Seelen gibt, die es absolut verabscheuen. Ich würde mich zu ihnen zählen, aber ich benutze es tatsächlich.

Ich habe setuptools für genügend Projekte verwendet, um mir seiner Mängel bewusst zu werden, und ich würde etwas Besseres vorziehen. Mir gefällt das Eiformat und seine Verwendung nicht besonders. Mit all den Problemen von setuptools habe ich keine bessere Alternative gefunden.

Mein Verständnis von Werkzeugen wiePi ist, dass es ein easy_install-Ersatz sein soll (nicht setuptools). In der Tat verwendet Pip einige Setuptools-Komponenten, richtig?

Die meisten meiner Pakete verwenden eine setuptools-fähige setup.py, die alle Abhängigkeiten deklariert. Wenn sie fertig sind, erstelle ich einen SDIST, einen BDIST und einen BDIST_EG und lade sie auf pypi hoch.

Wenn ich zu pip wechseln wollte, welche Änderungen müsste ich vornehmen, um mich von easy_install-Abhängigkeiten zu befreien? Wo sind die Abhängigkeiten deklariert? Ich vermute, dass ich mich von der Verwendung des Eiformats verabschieden und nur Quelldistributionen bereitstellen muss. Wenn ja, wie erstelle ich die Eierinfo-Verzeichnisse? oder muss ich das überhaupt?

Wie würde dies meine Nutzung von virtualenv ändern? Verwendet virtualenv nicht easy_install, um die Umgebungen zu verwalten?

Wie würde dies meine Verwendung des von setuptools bereitgestellten Befehls "develop" ändern? Soll ich das nicht benutzen? Was ist die Alternative?

Ich versuche im Grunde ein Bild davon zu bekommen, wie mein Entwicklungsworkflow aussehen wird.

Bevor es jemand vorschlägt, suche ich keine betriebssystemabhängige Lösung. Ich beschäftige mich hauptsächlich mit Debian Linux, aber Deb-Pakete sind aus den Gründen, die Ian Bicking umreißt, keine Option.Hie.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage