Custom-distutils-Befehle
Habe ich eine Bibliothek namens "Beispiel", dass ich die Installation in meinem globalen site-packages-Verzeichnis. Aber ich möchte in der Lage sein, um die Installation von zwei Versionen, eine für Produktion und eine für die Prüfung (ich habe eine web-Anwendung und andere Dinge, die versioniert sind diese Weg).
Gibt es eine Möglichkeit zu geben, sagen Sie "python setup.py stage", die nicht nur installieren Sie ein anderes ei in site-packages, aber auch Sie können das Modul umbenennen von "Beispiel" bis "example_stage" oder etwas ähnliches?
Wenn distutils kann dies nicht tun, gibt es irgendwelche anderen Tools, die das können?
InformationsquelleAutor der Frage dave paola | 2009-11-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicher, Sie können Sie erweitern distutils mit neuen Befehlen. In Ihrem distutil Konfigurations-Datei hinzufügen:
diese kann in
distutils.cfg
imdistutils
Paket selbst..pydistutils.cfg
in Ihrem home-Verzeichnis (ohne führenden Punkt auf Windows), odersetup.cfg
im aktuellen Verzeichnis.Dann müssen Sie ein foo.bar-Paket in Ihrem Python site-packages-Verzeichnis.
Dann in diesem Paket ergänzen Sie die Klassen der Implementierung Ihres neuen gewünschten Befehle, wie
stage
Unterklassen distutils.cmd -- die docs sind schwach, aber es gibt viele Beispiele, da alle existierenden distutils-Befehle sind auch so gebaut.InformationsquelleAutor der Antwort Alex Martelli
Dies kann leicht getan werden mit distutils, indem bilden von Unterklassen distutils.core.Befehl innerhalb von setup.py.
Beispiel:
Aktivieren Sie den Befehl müssen Sie einen Verweis auf Sie in setup():
Beachten Sie, dass Sie außer Kraft setzen können, built-in Befehle auf diese Weise zu, wie das, was ich mit "sauber". (Ich wusste nicht, wie die built-in version Links hinter dem 'dist' und 'bauen' Verzeichnisse.)
Gibt es eine Reihe von Konventionen, die verwendet werden:
Das beste Beispiel, um zu verwenden ist, um sich in den Quellcode für eines der Standard-Befehle gefunden bei PYTHON_DIR/distutils/command wie install.py oder build.py.
InformationsquelleAutor der Antwort jathanism
Wenn Sie möchten, verwenden Sie mehrere-version, dann virtualenv mit virtualenvwrapper helfen können.
InformationsquelleAutor der Antwort jfs
Sehen Alex ' Antwort wenn Sie wollen, einen Weg, dies zu tun mit distutils, aber ich finde STRAßENFERTIGER besser für diese Art der Sache. Es macht es viel einfacher, um benutzerdefinierte Befehle oder überschreiben von bereits vorhandenen. Plus die Umstellung ist nicht allzu schwierig, wenn Sie ' re verwendet, um distutils oder setuptools.
InformationsquelleAutor der Antwort Jason Baker