Ipython

From wikinotes
Revision as of 20:22, 19 September 2021 by Will (talk | contribs) (→‎Locations)

TODO:

These docs are a mess, and highlight the wrong info. To be reorganized. 

An alternative/featureful python interpreter.

  • colours
  • tab autocomplete
  • auto-reload all before each run
  • all of these features within a debugger
  • readline support

You can also install kernels for other languages, allowing you to run them within it (ex: java).

Documentation

As of the move to IPython 5.0, the documentation is in the progress of being hosted on Read The Docs. IPython also incorporated some other projects, and their configuration is also independent of ipython's own.

http://python-prompt-toolkit.readthedocs.io/en/stable/ IPython5.0 readline replacement (see here for vi-style keys)
http://ipython.readthedocs.io/en/stable/ IPython5.0 documentation
https://ipython.org/ipython-doc/3/ Legacy IPython documentation
https://github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages Other Lang Kernels (C#, Haskell, Julia,...)

Locations

~/.ipython/profile_default/ipython_config.py ipython config
~/.ipython/${PROFILE}/startup/ scripts in this folder are run on startup

Notes

ipython configuration
ipython usage

Configuration

import IPython
IPython.utils.path.get_ipython_dir()				## Find loaded profile

%load_ext autoreload										## Autoreload all modules before each run
%autoreload 2

Usage

cd /path/to/files										## ipython has basic shell capabilities
run script.py											## run a script (even if not on pythonpath)

vim editing mode

ipython --TerminalInteractiveShell.editing_mode=vi  ## use editing-mode vi without an ipython config

readable colours on windows

If using cmder, use XTERM colourscheme. You can set highlighting_style to any pygments style.

python -m IPython \
    --TerminalInteractiveShell.editing_mode=vi \
    --TerminalInteractiveShell.highlighting_style=monokai

Logging

IPython initiates the logger before your programs are run, so all of the settings that you normally have set using logging.basicConfig() are ignored. You can modify them by using logging.root, which accesses the root logger's options.

logging.root.level = logging.DEBUG

CLI

I'm not sure why, but ipython does not create manpages. Nor do they host their CLI documentation on the web. (I have no idea why not...).

In order to get help from ipython:

ipython --help-all		## generic commands
ipython help kernel		## information about specific subcommands

Kernel

There are kernels for other languages available to ipython.

ruby iruby
ijava