Warum behandelt meine installierte Anwendung pkg_resources.iter_entry_points anders als in der Quelle?

8

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.

  • Warum verhält sich pkg_resources.iter_entry_points beim Auschecken der Vanilla-Quelle anders als bei der installierten Anwendung?
  • Wie kann ich alles in sys.path durchqueren, so wie es in der Entwicklung ist?
Benjamin Pollack 10.03.2014, 19:21
quelle

1 Antwort

1
  1. Wie bekomme ich es über sys.path zu iterieren?

    pkg_resources.WorkingSet(None).iter_entry_points

  2. 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

  3. auszuführen
yacc143 16.09.2014 16:59
quelle