herauszufinden, ob Python-Modul installiert ist, oder in der Entwicklung Modus programmatisch
Frage
Ich neige dazu, meine apps in entwickeln -Mode 'setup.py entwickeln'. Ich würde die Konfiguration will automatisch auf Produktionsmodus zu wechseln, wenn das Programm wird ‚setup.py install'ed.
Dies kann durch schlechte Hacks durchgeführt werden, wie geprüft wird, ob Installationsverzeichnis enthält ‚setup.py‘, aber ich frage mich, ob pkg_resources kann das irgendwie für mich tun.
Lösung
Tatsächlich pkg_resources
wird diese tun:
dist = pkg_resources.get_distribution('your-app')
if dist.precedence == pkg_resources.DEVELOP_DIST:
# package is in development mode
...
Andere Tipps
Ist es nicht einfacher und saubere, nur um eine Umgebungsvariable auf Ihrer Entwicklungsmaschine gesetzt und Test für os.environ['development_mode']
(oder eine Einstellung Ihrer Wahl)?
Eine weitere Möglichkeit ist die Verwendung virtualenv . Dann könnte die Entwicklungsumgebung in der Produktionsumgebung identisch sein. Setuptools ist ein ziemlich schweres Ding auf abhängen, meiner Meinung nach.