python michael poeltl © 2011

python-3.2 installieren

Natürlich kannst Du das python-Paket, das mit Deiner distro mitkommt, verwenden. Die meisten Linux-Distributoren bieten ein python-2.X und ein python-3.X Paket zur Installation mittels Paketmanager an (python2.X ist zumeist per default vorinstalliert).
Willst Du aber die aktuelle python-Version einsetzen, musst das selber installieren; entweder ein vorkompiliertes Paket (deb, rpm) oder von source.

Bis zu python3.2 wurde python-2.X und python-3.X quasi parallel entwickelt. Neue features von python-3 wurden in python-2 aufgenommen.
Dies endete nun mit python-3.2.
python-2.7 wird nur noch bugfixes erhalten, aber keine neuen features mehr aufnehmen. Das bedeutet, dass es ab python-3.2 die neueren features geben wird. Zum Beispiel, in python3.2 wurde argparse eingeführt, das das bestehende optparse ablösen soll/wird - das gibt es nur noch in python3.2 (und später).

python3.2 from source

Zuerst muss man sich den source-code holen. Den bekommt man auf www.python.org.
Und weil Du schon dabei bist, lade Dir auch gleich die md5sum und das sig-file auf Dein filesystem.
*ACHTUN*: der Name des source-tarball beginnt mit einem großen p.

poeltl@terra:> md5sum -c Python-3.2.tar.bz2.md5
Python-3.2.tar.bz2: OK
poeltl@terra:> gpg --verify python-3.2.tar.bz2.sig Python-3.2.tar.bz2
gpg: Signature made Sun 20 Feb 2011 03:15:47 PM CET using DSA key ID 36580288
gpg: Good signature from "Georg Brandl (Python release signing key) "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 26DE A9D4 6133 91EF 3E25  C9FF 0A5B 1018 3658 0288
poeltl@terra:> tar xvjf Python-3.2.tar.bz2

poeltl@terra:> cd Python-3.2
poeltl@terra:> ./configure && make -j2

Das läuft unter slackware problemlos, weil da bereits die diversen header-files vorhanden sind. Unter slackware könnte man also gleich make install absetzen. Unter Ubuntu (in meinem Fall Ubuntu-10.04) oder unter debian, aber auch bei Suse und anderen treten Error-Meldungen auf.

Unter ubuntu musste ich folgende Pakete nachinstallieren:

Vielleicht braucht man sogar noch weitere Pakete nachinstalliert bei anderen distros.

poeltl@terra:> make test

poeltl@terra> sudo make install

poeltl@terra> python3
Python 3.2 (r32:88445, Feb 21 2011, 04:07:45) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Nun ist es an der Zeit, dass wir den python3-Interpreter anwerfen und testen.

?> python3
Python 3.2 (r32:88445, Feb 21 2011, 05:18:47) 
[GCC 4.2.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print ("Hello, World!")
Hello, World!
>>> exit()
?>

Beim Start des python-Interpreters checked dieser, ob es eine Umgebungsvariable PYTHONSTARTUP gibt. Diese Variable enthält dann, zum Beispiel, den Pfad zu einem file (z.B. $HOME/.pythonstartup), das dann zeilenweise abgearbeitet wird.
Bevor du dir Dein eigenes tolles Startscript schreibst, verwende vorher dieses, welches ich aus dem Buch python expert programming herauskopiert habe.
Folgendes stand im file

?> cat ~/.pythonstartup
import readline
import rlcompleter
import atexit
import os

#tab completion
readline.parse_and_bind('tab: complete')

#history file
histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
try:
    readline.read_history_file(histfile)
except IOError:
    pass
atexit.register(readline.write_history_file, histfile)
del os, readline, histfile, rlcompleter
?>

Füge nun export PYTHONSTARTUP=$HOME/.pythonstartup in dein ~/.bashrc ein, kopier die Zeilen ins file .pythonstartup, starte den python-Interpreter, drücke p und danach zwei mal die <TAB>-Taste.


Hier geht es zum Seitenanfang und da geht es zur python-Startseite