[Python-de] 2 kleine Fragen

Gerson Kurz Gerson.Kurz at t-online.de
Mon Mar 11 21:41:51 EST 2002


Mark Zoeltsch schrub:

> ich wuesste gerne was dieses "foo" bedeutet, dass hab ich jetzt
> schon oefters seit ich python lerne gelesen. Ist das so eine Art
> dummy Bezeichnung? Kommt das aus dem Linux/Unix oder/und
> CGI Bereich?

Name für irgendetwas unspezifisches, "generisches". Gibts auch in allen
anderen Sprachen ;) Hat einen sehr ausführlichen Eintrag im Hackers'
Dictionary, wo auch eine mögliche Bedeutung von "foobar" erklärt wird (alles
in Englisch).

http://www.tuxedo.org/~esr/jargon/html/entry/foo.html

> und was bedeutet dieses: #!/usr/bin/env python
> am Codeanfang? Wird das vom Interpreter erkannt
> und irgendwie verarbeitet oder soll das nur ein
> normaler Kommentarhinweis sein ...

Also, unter Windows ist der Dateityp in der Dateiendung "kodiert". Wenn du
eine Textdatei "readme.exe" nennst, wird der Explorer versuchen, sie
auszuführen, was naturgemäß nicht geht.

Die *nix Shell hingegen liest für ausführbare Dateien (haben ein
Permission-Bit ähnlich wie "Readonly" unter Windows). Wenn die erste Zeile
mit #! anfängt, dann gibt sie das Programm an, mit dem die Datei ausgeführt
werden soll. Also würde

#!/usr/bin/python

bedeuten, daß die Datei mit dem Befehl /usr/bin/python ausgeführt wird
(egal, ob die Datei die endung .py oder .exe oder .sonstwas hat). Das

#!/usr/bin/env python

Sucht den Befehl "python" auf dem Pfad und führt in dann aus. (Tatsächlich
kann "env" noch mehr, aber das ist was hier damit bezweckt wird).

> macht das auch Sinn auf anderen Plattformen
Wenn damit windos gemeint ist, ein klares jein. Für normale Scripte nicht.
Du brauchst es aber z.B. für Apache-CGIs unter Windows, allerdings dann in
der Form

#!c:/python22/pythonw.exe -u

Da ich meine cgi-Scripte immer unter Windows und Linux laufen habe und es
leid war, ständig die erste Zeile zu ändern, habe ich ein Verzeichnis
C:\usr\bin angelegt und das python.exe reinkopiert; damit funktioniert
zumindest

#!/usr/bin/python

sowohl unter Windows (bei mir) wie unter Linux (bei meinem ISP).

> oder ist das eine reine Unix Sache?
eigentlich schon, aber siehe Apache.






More information about the Python-de mailing list