Debian Lenny, Python 2.6 und Python 2.5

Probleme bei der Installation?
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Ich habe jetzt auf meinem Laptop (Debian Lenny) Python 2.6.4 installiert, vorher war Python 2.5 installiert (ist es auch immer noch)

Installiert habe ich Py 2.6 so:
1. Downloaden
2. Entpacken
3. ,/configure
4. make -f Makefile
5. sudo make install

Wenn ich jetzt ein Skript mit python test.py starte wird Python 2.6 verwendet, wenn ich es mit ./test.py starte und im Shebang #!usr/bin/python steht wird Python 2.5 verwendet, wenn ich aber im Shebang #!/usr/bin/env python schreibe wird Python 2.6 verwendet, wie kann ich jetzt Python 2.6 auf #!/usr/bin/python legen?

which python sagt mir es ist auf /usr/local/bin/python
the more they change the more they stay the same
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich denke, du willst nicht dein System-Python ersetzen. Kannst du ausschließen, dass du irgendwelche schlecht programmierte Python-Software hast, die nicht mehr funktioniert, wenn sie 2.6 statt 2.5 findet?

Das #!/usr/bin/python ist IMHO schlechter Stil. Benutze lieber den Umweg über /usr/bin/env oder aber benutze zumindest /usr/bin/python2.6 und linke dann (als root) /usr/local/bin/python2.6 nach /usr/bin.

Stefan
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

wenn Debian kein Python benutzt, dann kann ich es ausschließen (fast noch nichts installiert)
Das #!/usr/bin/python ist IMHO schlechter Stil. Benutze lieber den Umweg über /usr/bin/env oder aber benutze zumindest /usr/bin/python2.6 und linke dann (als root) /usr/local/bin/python2.6 nach /usr/bin.
Mit ln?
the more they change the more they stay the same
Benutzeravatar
snafu
User
Beiträge: 6831
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Debian nutzt an einigen Stellen Python-Skripte. Such halt mal nach `*.py`. :)

Und ja, Linken macht man mit `ln`, üblicherweise `ln -s`.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Die Verknüpfung funktioniert, danke
the more they change the more they stay the same
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich baue mir unter Debian lieber Backports statt mein System mit irgendwelchen per ``make install`` gebastelten Installationen zu verschmutzen...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

So viel Ahnung habe ich unter Linux noch nicht
the more they change the more they stay the same
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Gerade das ist dann eben einfacher, weil die Debian-Buildskripte sagen welche Pakete nötig sind um das Paket komplett zu bauen. Mir ists schon oft passiert dass ich Python-Installationen ohne readline oder *dbm hatte oder irgendwas anderes gefehlt hat, weil es zum Kompilationszeitpunkt nicht auf dem System installiert war.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Mann, wieso benutzt ihr nicht mal die Suchfunktion? Die Frage kam im Dezember mehrere male, und jedesmal wurde aufgezeigt, dass es neben dem Selbercompilieren noch bessere Moeglichkeiten gibt... Die Python2.6-Pakete aus Unstable z.B. sollten sich in Lenny auch problemlos installieren lassen.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@David,
das gleiche Problem hab ich auch gehabt zu Anfang.
1)
Du must (ich habe es so gemacht) in die Shebeen-Zeile schreiben.
#!/usr/bin/python2.6
Genau so und nicht anderes.
Ich rede von dem Pythonscript.
Danach-wenn der Interpreter alles gefressen hat- muss man das script mit chmod 0775
ausfürbar machen und dann mit ./datei.py starten.

2)
Dann -Rebecca hat Recht-
man sollte immer über den Paketmanager (Synaptic oder apt-get bei Ubuntu) seine pakete holen.
Die Pakete sind irgendwie schon "vorbehandelt" das ganze Konfigurieren entfällt.
Man muß natürlich DSL haben. Mit den alten Buschtrommeln - Modems mit 56 k- dauert es halt lang.
Man muß natürlich den Namen des Paketes kennen und da gibts schon mal verdrehte namen.
Es kommt auch vor, das die Spiegelserver bestimmte Pakete nicht archiviert haben.
Dann muß man es halt "zu Fuß" configurieren.
Mir ist es bisher erst 1 mal passiert. meistens werden die fehlenden Pakete oder Libraries beim Interpretieren angemeckert.
Grüße Fritz
:idea:
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

zu 1, das ging ja nicht, deswegen hab ich die Verlinkung gemacht -> ln -s

zu 2, ich habe mit apt-cache nach python gesucht, gefunden habe ich pytho2.4, python2.5 und nur python

Code: Alles auswählen

python - An interactive high-level object-oriented language (default version)
mehr nicht, und bevor die Default-Version 2.5 ist hab ichs lieber direkt runtergeladen und dann auch mal selber was kompiliert (hab ich doch, oder?)
the more they change the more they stay the same
Gabelmensch
User
Beiträge: 79
Registriert: Montag 12. Oktober 2009, 11:50

Schau dir mal die Readme im Archiv an, es gibt die Moeglichkeit "altinstall".
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@David
ich befürchte, Du mußt Deine Python-Pakete neu installieren.
1. In UNIX:
whereis python
gibt alle Pfade zurück, wo Python steht.
2.
In Ubuntu gibt es die Möglichkeit python2.6 nachzuinstallieren.
Wenn Dein System nicht zerschossen ist (hoffentlich nicht)
Wird python2.6 sauber configuriert.
Dann steht in:
/usr/bin/python2.6
/usr/local/bin/python2.6
und die Bibliotheken stehen in
/usr/lib/
in /usr/include/ stehen die Dokumente zu 2.6
Gib in der Python-zeile ein:
import sys
print sys.path
Dann muß python2.6 irgendwo auftauchen.
Die scriptfiles müssen dann in der shebeen Zeile auch Python2.6 aufrufen.
Schluß, Fertig gute Nacht.
Grüße Fritz
8) 8)
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Ich habe mich oben vertan, es ist nicht Unstable sondern Experimental, welches die Python 2.6-Pakete hat. Ich hole mir die Pakete von dort immer manuell, so bin ich sicher dass ich nicht noch ausversehen andere Dependencies aus Experimental mit reinziehe, und da ich die deb-Dateien schoen aufhebe, kann ich auch immer nachsehen, welche Pakete ich nicht aus dem offiziellen Repo meines Releases habe. Also libpython2.6, python2.6-minimal und python2.6 runterladen und mit dpkg -i bla.deb installieren. (Genau genommen hab ich mir ein eigenes Repo auf der Platte eingerichtet, aber das fuehrt hier ein wenig zu weit :wink:)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

@3ff: das heißt übrigens "Shebang" und nicht "Shebeen" denn "!" ist eher "bang" als "been".
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

@gabelmensch, danke, allerdings wollte ich ja 2.6 als MainInstallation haben und nicht Python 2.5

Wieso muss ich meine Pythonpakete neu installieren?
das mit whereis wusste ich, tut doch aber nichts zur Sache, oder?
was hat import sys#; print sys.path für einen Sinn, dann ist ja Python 2.6 schon gestartet

Ich hab die stable ;), wenn ich die experimental hätte könnte ich Python2.6 per apt-get installieren?
the more they change the more they stay the same
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Wie Rebecca sagte, kannst du angeblich die Expreimental-Pakete in Stable direkt instalieren.

Ich mache das aber so, dass ich mir die Pakete lokal als Backports baue und installiere.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Dav1d hat geschrieben:@gabelmensch, danke, allerdings wollte ich ja 2.6 als MainInstallation
Das ist, wie schon gesagt wurde, keine gute Idee, da zu viele grundlegende Debian-Pakete von 2.5 abhaengen, und du nicht vorhersagen kannst, was ein Umstieg auf 2.6 an deinem System alles kaputtmachen kann. Wo ist auch das Problem, bei deinen Programmen, die Python 2.6 brauchen, dies explizit anzugeben?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

shebeen ist ein keltisches Wort und wird in irland benutzt für schwarzgebrannten Schnaps.
Bleib Du bei shebang ich bleib bei shebeen.
Es ist immer die 1. Zeile in einem Unix-Scriptfile und bei Python muß es so lauten:
#!/usr/bin/python2.6 oder andere Versionen.
Bei mir funltioniert es so nicht
#!/usr/bin/env python
dann kommt die Fehlermeldung: Bad Intetpreter.
Vielleicht ist mein env nicht vollständig.
Da wir hier nicht bei desperate housewifes sind, wollen wir es dabei belassen.
Grüße Fritz

8) 8)
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

bei mir hat #!/usr/bin/env python funktioniert und #!/usr/bin/python2.6 läuft jetzt auch, dank dem Link auf /usr/local/bin/python
the more they change the more they stay the same
Antworten