Seite 1 von 1
#!/usr/bin/env python
Verfasst: Montag 31. März 2014, 13:26
von Nobuddy
Hallo zusammen,
zu:
habe ich Fragen.
Ich nutze Python unter Kubuntu 12.04, dort gibt es aber den Pfad '/usr/bin/env' nicht, sondern nur '/usr/bin/'.
Meine Python-Programme funktionieren aber trotzdem.
Könnte mir jemand das kurz erklären?
Unter '/usr/bin/' habe ich:
- python
- python2
- python3
- python3.2
Wird bei
automatisch, die höchste Python-Version verwendet, oder muß ich die speziell angeben?
Etwa so:
Grüße Nobuddy
Re: #!/usr/bin/env python
Verfasst: Montag 31. März 2014, 13:30
von anogayales
Hallo Nobuddy,
probier es doch einfach aus! Du kommt mittels
an die jeweilige Versionsinformation. Welche python Version letztendlich ausgewählt wird hängt stark von deinem verwendeten System ab. Normalerweise gibt es einen symbolischen Link im Verzeichnis /usr/bin/ auf die jeweilige python Version.
Grüße,
anogayales
Re: #!/usr/bin/env python
Verfasst: Montag 31. März 2014, 14:07
von BlackJack
@Nobuddy: ``/usr/bin/env`` gibt es ganz bestimmt, das ist aber nicht, wie Du vielleicht vermutest ein Verzeichnis sondern ein Programm:
http://man.cx/env
Re: #!/usr/bin/env python
Verfasst: Montag 31. März 2014, 15:28
von Nobuddy
Ok, Danke für Eure Antworten!
Bei
habe ich die Version 3.2, also die Aktuellste auf meinem System.
Das Programm env, gibt dann wohl die aktuell installierte Programmversion auf dem Betriebssystem zum Starten frei!?
Re: #!/usr/bin/env python
Verfasst: Montag 31. März 2014, 15:45
von BlackJack
@Nobuddy: Das startet einfach das Programm welches danach angegeben wird. Man muss dann keinen konkreten Pfad angeben weil das Programm in den Pfaden gesucht wird, die in der Umgebungsvariablen $PATH stehen. Also genau so als würde man ``python`` direkt in einer Shell eingeben. Das ist portabler als zum Beispiel ``#!/usr/bin/python`` zu schreiben, weil nicht bei jedem System das Python-Programm genau an der Stelle liegen muss. Aber jedes Linux hat ein ``/usr/bin/env``-Programm.
Auf einem Kubuntu 12.04 solltest Du bei ``#!/usr/bin/env python`` übrigens kein 3.2 bekommen.
Re: #!/usr/bin/env python
Verfasst: Montag 31. März 2014, 16:16
von Hellstorm
Man muss sich meistens zwischen python (bzw. python2) und python3 entscheiden. Wenn du mal mit ls -l in /usr/bin suchst, dann siehst du haufenweise symbolische Verknüpfungen. Wenn man python3 eintippt, kriegt man also automatisch die aktuellste Python-3-Version, bei python bzw. python2 automatisch die aktuellste Python-2-Version.
Python 2 und 3 laufen im Paketmanager parallel, d.h. Python 3 ersetzt Python 2 nicht. Umgekehrt ersetzt Python 3.4 aber z.B. Python 3.3.