Ich habe eine Python-App, die Plugins über pkg_resources.iter_entry_points
sucht.
Wenn Sie direkt aus dem Quell-Checkout ausgeführt werden, finden Sie in sys.path
alles, was zur Rechnung passt, einschließlich der Quell-Checkouts, bei denen eine passende .egg-info
für setuptools
zu finden ist.
Aber wenn ich das Paket irgendwo über python setup.py install
installiere, hört es plötzlich auf, alles aufzuzählen, was in sys.path
aufgezählt wurde, stattdessen finde ich nur Dinge, die neben ihm in site-packages
installiert sind.
pkg_resources.iter_entry_points
beim Auschecken der Vanilla-Quelle anders als bei der installierten Anwendung? sys.path
durchqueren, so wie es in der Entwicklung ist? Wie bekomme ich es über sys.path zu iterieren?
pkg_resources.WorkingSet(None).iter_entry_points
Warum verhält es sich anders? Wahrscheinlich, weil das installierte Paket mindestens die Metadaten von sich selbst in den Speicher zwingt. Wenn ich mir den Code anschaue, würde ich meinen, dass Ihr Hauptmodul ein erfordert -Attribut hat, aber das ist nur eine begründete Schätzung. Um das "installierte" Verhalten während der Entwicklung zu erzwingen, sollte es ausreichen, python setup.py develop
Tags und Links python setuptools pkg-resources