Quicktipp: ipython Shell und ihre Farben

ipython ist eine interaktive Python Shell (und nocht viel mehr, siehe homepage). In ihren Defaulteinstellungen passen die benutzen Farben (gelb/grün/ropt) allerdings nur schlecht zu meinen Terminals mit hellem Hintergrung. Realisiert wird die farbliche Gestaltung mittels sogenannter "color schemes". Bei mir existieren derzeit
  • NoColor
  • Linux (der Default)
  • LightBG
Um diese zu ändern kann man
  • Das Farbschema beim Starten angeben: ipython -colors LightBG
  • Das Farbschema im laufenden Betrieb ändern: %colors LightBG
  • Default per Konfigurationsdatei verstellen

Verstellen des Defaults per Konfigurationsdatei

Die Defaulteinstellung lässt sich in iPythons Konfigurationsdateien verstellen. Diese finden sich in ~/.ipython (auf Windows evtl. in ~/_ipython). Mit aktuellen Versionen von iPyton gibt es prinzipiell zwei Möglichkeiten, dies zu bewerrkstelligen:
  • ipythonrc, diese Datei is als veraltet markiert und sollte nicht mehr benutzt werden
  • ipy_user_conf.py, dies ist der mittlerweile empfohlene Weg und soll hier betrachtet werden.
ip_user_conf.py enthält "normalen" Python Code der direkt auf das interne iPython API zugreifen kann. Die Defaulteinstellungen sahen bei mir wie folgt aus:
  1. ## Initiale Kommentare entfernt...
  2.  
  3. import IPython.ipapi
  4. ip = IPython.ipapi.get()
  5.  
  6. # You probably want to uncomment this if you did %upgrade -nolegacy
  7. # import ipy_defaults
  8.  
  9. def main():
  10. # Handy tab-completers for %cd, %run, import etc.
  11. # Try commenting this out if you have completion problems/slowness
  12. import ipy_stock_completers
  13.  
  14. # uncomment if you want to get ipython -p sh behaviour
  15. # without having to use command line switches
  16.  
  17. # import ipy_profile_sh
  18.  
  19. o = ip.options
  20. # An example on how to set options
  21. #o.autocall = 1
  22. o.system_verbose = 0
  23.  
  24. main()
Um nun das Highlighting per Default auf LightBG zussetzen, kann man Zeile 20 wie folgt einfügen
    o.colors = 'lightbg'