转载

[工具资源] 一个更好的 Python 交互解释器

ptpython

A better Python REPL

pip install ptpython
[工具资源] 一个更好的 Python 交互解释器

Ptpython is an advanced Python REPL. It should work on all Python versions from 2.6 up to 3.5 and work cross platform (Linux, BSD, OS X and Windows).

Installation

Install it using pip:

pip install ptpython

Start it by typing ptpython .

Features

  • Syntax highlighting.
  • Multiline editing (the up arrow works).
  • Autocompletion.
  • Mouse support. [1]
  • Support for color schemes.
  • Support for bracketed paste [2].
  • Both Vi and Emacs key bindings.
  • Support for double width (Chinese) characters.
  • ... and many other stuff.

[1] Disabled by default. (Enable in the menu.)

[2] If the terminal supports it (most terminals do), this allows pasting without going into paste mode. It will keep the indentation.

More screenshots

The configuration menu:

[工具资源] 一个更好的 Python 交互解释器

The history page and its help:

[工具资源] 一个更好的 Python 交互解释器

Autocompletion:

[工具资源] 一个更好的 Python 交互解释器

Embedding the REPL

Embedding the REPL in any Python application is easy:

from ptpython.repl import embed
embed(globals(), locals())

Multiline editing

Multi-line editing mode will automatically turn on when you press enter after a colon.

To execute the input in multi-line mode, you can either press Alt+Enter , or Esc followed by Enter . (If you want the first to work in the OS X terminal, you have to check the "Use option as meta key" checkbox in your terminal settings. For iTerm2, you have to check "Left option acts as +Esc" in the options.)

[工具资源] 一个更好的 Python 交互解释器

Syntax validation

Before execution, ptpython will see whether the input is syntactically correct Python code. If not, it will show a warning, and move the cursor to the error.

[工具资源] 一个更好的 Python 交互解释器

Additional features

Running system commands: Press Meta-! in Emacs mode or just ! in Vi navigation mode to see the "Shell command" prompt. There you can enter system commands without leaving the REPL.

Selecting text: Press Control+Space in Emacs mode on V (major V) in Vi navigation mode.

Configuration

It is possible to create a ~/.ptpython/config.py file to customize the configuration.

Have a look at this example to see what is possible:config.py

IPython support

Run ptipython (prompt_toolkit - IPython), to get a nice interactive shell with all the power that IPython has to offer, like magic functions and shell integration. Make sure that IPython has been installed. ( pip install ipython )

[工具资源] 一个更好的 Python 交互解释器

Django support

django-extensions has a shell_plus management command. When ptpython has been installed, it will by default use ptpython or ptipython .

PDB

There is an experimental PDB replacement:ptpdb.

Windows support

prompt_toolkit and ptpython works better on Linux and OS X than on Windows. Some things might not work, but it is usable:

[工具资源] 一个更好的 Python 交互解释器

FAQ

Q: The Ctrl-S forward search doesn't work and freezes my terminal.

A: Try to run stty -ixon in your terminal to disable flow control.

Q: The Meta -key doesn't work.

A: For some terminals you have to enable the Alt-key to act as meta key, but you can also type Escape before any key instead.

Alternatives

  • BPython
  • IPython

If you find another alternative, you can create an issue and we'll list it here. If you find a nice feature somewhere that is missing in ptpython , also create a GitHub issue and maybe we'll implement it.

Special thanks to

  • Pygments : Syntax highlighter.
  • Jedi : Autocompletion library.
  • Docopt : Command-line interface description language.
  • wcwidth: Determine columns needed for a wide characters.
  • prompt_toolkit for the interface.
原文  https://github.com/jonathanslenders/ptpython
正文到此结束
Loading...