nach Neustart muss export funktion erneut ausgeführt werden

Django, Flask, Bottle, WSGI, CGI…
Antworten
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

Hallo zusammen,

ich habe ein Ubuntu System und will damit das Django Framework betreiben was auch sehr gut funktioniert.
Allerdings muss ich meinem Linux System nach jedem Neustart sagen, dass er die Variable global verfügbar machen soll.
das mit folgendem Befehl funktioniert: export DJANGO_SETTINGS_Module=Settings
wenn ich jetzt das System neustarte ist die variable wieder gelöscht.
würde es gerne in mein Python Script einbringen, sobald ich meinen Python Code ausführe, sollte die System Variable gesetzt werden.
kann mir jemand sagen wie man sowas in den Programmcode einbindet?

vielen Dank im voraus
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

os.environ['DJANGO_SETTINGS_MODULE'] = 'bla' bevor irgendetwas von Django importiert wird sollte tun.
deets

Ich wuerde das nicht in den Programmcode einbetten, weil es da nix verloren hat. Das heisst ja nicht umsonst Umgebungsvariable, und nicht Programmvariable.

Es gibt viele Moeglichkeiten, so eine Variable systemweit oder fuer ein spezifisches Programm zu setzen. Wie *startest* du das Ding denn nach einem Neustart des Systems?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

deets hat geschrieben:Ich wuerde das nicht in den Programmcode einbetten, weil es da nix verloren hat. Das heisst ja nicht umsonst Umgebungsvariable, und nicht Programmvariable.
Es macht durchaus Sinn sowas in einem wsgi script zu setzen…
deets

Na mensch, gut, dass du das gleich geschrieben hast und hier niemand unerfahrenes mitliest wie der OP, der stattdessen Python Sourcecode dahin geschrieben haette, wohin er auch sonst Python Source Code schreibt: in seinen Anwendungscode.... statt in das init-skript, die Apache-Konfiguration, das WSGI-Skript oder oder oder.
deets

Und noch ein kleiner Nachtrag: ich halte im Grunde auch das WSGI-Skript dafuer nicht als uebermaessig geeignet. Denn bei mir zumindest ist das Teil des Sources. Wenn ich also auf verschiedenen Rechner deployen will, dann hat das da wieder nix verloren.

Die Apache-Config aber ist zB eh mit Rechner-spezifika voll, das ist halt Konfiguration.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

WSGI-Scripte sind hier großteils Deployment spezifisch und nicht Teil des Sources, vor allem wenn man dynamisch von Apache an verschiedene WSGI apps dispatcht (da wäre das setzen der Config im Apache lästig und unübersichtlich, außerdem haben die User keinen Zugriff auf die Apache config…). Dazu kommt noch, dass man durch die Anpassung im WSGI-Script depylomentunabhängig ist (Im Sinne von welcher webserver etc…). Was man im Endeffekt macht ist jedem selbst überlassen, ich denke es gibt für beide Positionen Argumente…
Antworten