Alla som håller på med Python vet hur kraftfullt det är att testköra små programsnuttar eller uttryck direkt i python-tolken. Tolken sparar även historik och man kan enkelt få fram de senaste kommandona med pil upp och pil ned.
Något som är lite synd är att historiken inte finns kvar när man avslutar python. I flera Linux-installationer fungerar inte heller tab-complete för att se funktionsnamn och liknande. Men här kommer lösningen och hur du gör i Ubuntu!
Skapa en fil som heter t.ex. /etc/pythonrc som innehåller:
import os, readline, rlcompleter, atexit
history_file = os.path.join(os.environ['HOME'], '.python_history')
try:
readline.read_history_file(history_file)
except IOError:
pass
readline.parse_and_bind("tab: complete")
readline.set_history_length(1000)
atexit.register(readline.write_history_file, history_file)
del os, readline, rlcompleter, atexit, history_file, __file__
Skapa även filen /etc/profile.d/python.sh, den kommer att exekveras varje gång du loggar in:
export PYTHONSTARTUP="/etc/pythonrc"
Det betyder att varje gång du startar python så kommer /etc/pythonrc att köras först. Det scriptet ser till att spara historiken i ~/.python_history och även läsa in den historiken när python startas.
Sätt rättigheter på filen:
chmod 755 /etc/profile.d/python.sh
Logga ut och logga sedan in igen. /etc/profile.d/python.sh har nu körts och PYTHONSTARTUP har sats.
Testa att starta python och skriv något. Avsluta python och starta igen. Med pil upp kan du se det du skrev senast.
Nu ska även tab-complete fungera:
root@# python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib
>>> hashlib.sha
hashlib.sha1( hashlib.sha224( hashlib.sha256( hashlib.sha384( hashlib.sha512(
Pythonhistorik och tab-complete finns som standard installerat på alla våra servrar.