2009-03-10 11 views

Antwort

4

Tatsächlich pkg_resources will do that:

dist = pkg_resources.get_distribution('your-app') 
if dist.precedence == pkg_resources.DEVELOP_DIST: 
    # package is in development mode 
    ... 
+0

Sie lernen jeden Tag etwas Neues. :) –

5

Ist es nicht einfacher und sauberer, einfach eine Umgebungsvariable auf Ihrem Entwicklungscomputer festzulegen und auf os.environ['development_mode'] (oder eine Einstellung Ihrer Wahl) zu testen?

+0

+1: einfacher ist besser. –

+0

Vielleicht. Es scheint jedoch nicht schwierig zu sein, diese Informationen über pkg_resources zu erhalten. – Cheery

+0

Nein, aber es ist immer noch eine schlechte Idee, das Verhalten auf die Art der Installation abzustimmen. Wenn Sie einen bestimmten Codeabschnitt debuggen möchten, der nur außerhalb des Entwicklungsmodus ausgeführt wird, müssen Sie den Code bearbeiten oder das Paket erneut installieren. Bei der Umgebungseinstellung legen Sie einfach die Variable fest. –

0

Eine weitere Option ist virtualenv zu verwenden. Dann könnte Ihre Entwicklungsumgebung mit Ihrer Produktionsumgebung identisch sein. Setuptools ist eine ziemlich schwere Sache, auf die ich mich verlassen kann.

Verwandte Themen