Hallo. Am Sam, den 04.09.2004 um 12:43 Uhr +0200 schrieb Hartmut Goebel:
Marcus Habermehl wrote:
Warum ist das blauäugig? Unter Linux (besser gesagt hier Slackware) gibt es nur
pfad1=/usr/bin pfad2=/usr/local/bin pfad3=/usr/X11R6/bin pfad4=/opt/kde/bin,
wo die Programme liegen könnten.
Und genau das ist blauäugig! Darum:
* In obiger Liste fehlen schon man /sbin, /usr/sbin, /usr/local/sbin.
Des es sich bei den gesuchten Programme handelt, dürften die sbin Verzeichnisse keine Rolle spielen. Habe es zumindest noch nicht erlebt, dass ein WM in [/usr|/usr/local]/sbin installiert war.
* Damit läuft das Programm nur auf dieser Version diese OS in der Konfiguration. Was machst Du, wenn der Anwender eine der Anwendungen in seinem Home installiert hat?
Ich weiß zwar, dass man etwas nach ${HOME}/bin installieren/kopieren und ausführen kann. Aber da ich bisher von vielen Seiten gehört habe, dass man das aus Sicherheitsgründen nicht machen soll, habe ich diesen Pfad immer ignoriert und notfalls gelöscht.
* Unter Unix wird der Suchpfad in $PATH festgelegt. Jedes Programm sollte dann auch diese Variable auswerten. Mein PATH sieht beispielsweise so aus:
[hartmut@goebel02 hartmut]$ echo $PATH /bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/home/hartmut/bin
Regel: Nichts hardcoden, bei dem die Wahrscheinlichkeit groß ist, dass es sich ändert.
Ich habe mir ja schön öffter mal überlegt, ${PATH} in meine Skripte einzulesen. Bisher war ${PATH} allerdings noch nicht wichtig. Es wäre wohl am besten, wenn ich die Variabel paths aus deinem Beispiel so benutze, oder? paths = os.getenv('PATH').split(':') Somit dürgen Änderungen am Code nicht nötig sein, da es ja, wie es richtig sein sollte, über ${PATH} gesteuert wird, aus welchen Verzeichnissen ein User etwas ausführen darf. Gruß Marcus _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de