python michael poeltl © 2011 |
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).
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:
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.