Systemumgebungsvariablen setzten und auslesen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Gast

Systemumgebungsvariablen setzten und auslesen?

Beitragvon Gast » Mittwoch 16. März 2005, 21:11

Hallöle,

Folgendes kleines Problem. Mein Pythonscript muss sich 2 Integerwerte "merken" und beim nächsten Scriptaufruf wieder parat haben. Wegen 2 Integern eine Datei zu erstellen, erscheint mir nicht sher performant, deswegen will ich die irgendwie als "Umgebungsvariable" oder ähnliches abspeichern (Unter Linux). Was wäre der einfachste und beste Weg dafür? Danke schonmal für Eure Hilfe
joe

Re: Systemumgebungsvariablen setzten und auslesen?

Beitragvon joe » Mittwoch 16. März 2005, 21:15

Anonymous hat geschrieben:Wegen 2 Integern eine Datei zu erstellen, erscheint mir nicht sher performant,

Wo siehst du denn da ein performance-problem? Rufst du das script denn sekündlich auf?
joe
Gast

Beitragvon Gast » Mittwoch 16. März 2005, 21:29

Naja Sekündlich nicht aber im 10sec Takt. Und ich denke dass es halt eine andere Lösung als das in der Datei speichern geben MUSS *gg*
BlackJack

Beitragvon BlackJack » Mittwoch 16. März 2005, 22:56

Ich würde die Datei empfehlen. Ist einfach, portabel und ob das wirklich zu "langsam" ist, solltest Du erstmal messen bevor Du kompliziertere Lösungen ins Auge fasst.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 17. März 2005, 06:44

Eine Lösung mit Umgebungsvariable wäre doch auch nett... Aber ich meine mal aufgeschnappt zu haben, das gesetzte Variablen nach dem beenden des Skripts immer gelöscht werden... Ist das richtig?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 17. März 2005, 13:39

Gucken und testen:

Code: Alles auswählen

import os
print os.environ
os.environ['Z'] = 'abc'
print os.environ['Z']

Also bei mir werden die Variablen nicht aufgehoben. Was du mahcen kannst wäre ein Server, der die Variablen cached und dann auf diese Werte per XML-RPC zugreifen, wenn du dir den Aufwand antun willst.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Donnerstag 17. März 2005, 14:38

Mal eine "dumme Frage": Wenn das Skript wirklich alle zehn Sekunden gestartet wird, wäre es da nicht besser ein ständig laufendes Skript zu haben, das einen best. Job alle zehn Sekunden erledigt - dann könnte ja alles im Speicher bleiben.
Wenn Du aber sagst: Geht nicht, weil ... dann denke doch nochmal über BlackJacks Kommentar nach. Ist da vielleicht was dran?

Ciao
Christian
Gast

Beitragvon Gast » Freitag 18. März 2005, 22:55

Tja, ich bastel halt gerade an meinem Superkaramba-Theme rum http://mitglied.lycos.de/schedl666/snapshot4.jpg

Und ich hab halt momentan schon eine CPU-Auslastung von ca 15% bedingt durch den Trafficmonitor, Temperaturüberwachung, etc. Jetzt wenn ich auch noch 3 POP-Mailboxen abfrage und für jede Mailbox eine Datei schreibe, dann werde ich die 20% Hürde wohl überschreiten *gg*
Wobei mir einfällt, alle 2 Minuten die Mailbox überprüfen sollte eigentlich reichen, so wichtig bin ich auch wieder nicht, dass bei mir (ausser Spams *gg*) sekündlich Mails eintreffen.

Wobei ich um eine Datei eh nicht drumrumkomme, weil ich abspeichern will, wieviele Mails in der POP-Box liegen, und sobald eine Mail dazu gekommen ist soll eine akkustische Meldung ausgegeben werden. Dh hilft es mir wenig wenn ich bei einem Reboot erstmal das "You have Mail" Gequake höre
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 20. März 2005, 23:16

Ach, os.environ setzen scheint ab Python 2.4.1 rc1 wieder möglich zu sein.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Sonntag 20. März 2005, 23:44

Aber es funktioniert (grundsätzlich) trotzdem nicht so, wie der "Gast" das gerne hätte.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 21. März 2005, 01:41

BlackJack hat geschrieben:Aber es funktioniert (grundsätzlich) trotzdem nicht so, wie der "Gast" das gerne hätte.

Ich habe es nicht getestet, da ich keine Lust habe mir ein Python vor 2.4.1 final zu installieren und genausowenig Lust habe, den Patch anzuwenden.

Da hast du Recht BlackJach, das setzen von Systemvariablen zum speichern von Daten ist absolut keine gute Idee... wäre ja grauenhaft wenn dauernd irgendwelche Programme irgendwo in meinen Systemvariablen irgendein Zeug anspeichern würden.

Wie gesagt, es gibt viele andere Möglichkeiten sowas zu lösen, die allesamt eleganter sind.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
joe

Beitragvon joe » Montag 21. März 2005, 08:50

Leonidas hat geschrieben:Ich habe es nicht getestet, da ich keine Lust habe mir ein Python vor 2.4.1 final zu installieren und genausowenig Lust habe, den Patch anzuwenden.

Das ist keine frage der Pythonversion. Grundsätzlich kann ein prozess nicht die umgebungsvariablen der übergeordneten prozesses beeinflussen (zumind. nicht bei den mir bekannten OSs). Und das wäre ja nötig, um die werte von einem scriptaufruf zum nächsten reichen zu wollen.
joe

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder