ptpython

A better Python REPL

  • 所有者: prompt-toolkit/ptpython
  • 平台:
  • 许可证: BSD 3-Clause "New" or "Revised" License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

ptpython

A better Python REPL

::

pip install ptpython

.. image :: https://github.com/jonathanslenders/ptpython/raw/master/docs/images/example1.png, Build Status, Ptpython is an advanced Python REPL. It should work on all
Python versions from 2.6 up to 3.7 and work cross platform (Linux,
BSD, OS X and Windows).

Note: this version of ptpython requires at least Python 3.6. Install ptpython
2.0.5 for older Python versions.

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 <https://cirw.in/blog/bracketed-paste>_ [2].
  • Both Vi and Emacs key bindings.
  • Support for double width (Chinese) characters.
  • ... and many other things.

[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:

.. image :: https://github.com/jonathanslenders/ptpython/raw/master/docs/images/ptpython-menu.png

The history page and its help:

.. image :: https://github.com/jonathanslenders/ptpython/raw/master/docs/images/ptpython-history-help.png

Autocompletion:

.. image :: https://github.com/jonathanslenders/ptpython/raw/master/docs/images/file-completion.png

Embedding the REPL


Embedding the REPL in any Python application is easy:

.. code:: python

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

You can make ptpython your default Python REPL by creating a PYTHONSTARTUP file <https://docs.python.org/3/tutorial/appendix.html#the-interactive-startup-file>_ containing code
like this:

.. code:: python

import sys
try:
from ptpython.repl import embed
except ImportError:
print("ptpython is not available: falling back to standard prompt")
else:
sys.exit(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.)

.. image :: https://github.com/jonathanslenders/ptpython/raw/master/docs/images/multiline.png

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.

.. image :: https://github.com/jonathanslenders/ptpython/raw/master/docs/images/validation.png

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 or V (major V) in Vi
navigation mode.

Configuration


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

Have a look at this example to see what is possible:
config.py <https://github.com/jonathanslenders/ptpython/blob/master/examples/ptpython_config/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)

.. image :: https://github.com/jonathanslenders/ptpython/raw/master/docs/images/ipython.png

Django support


django-extensions <https://github.com/django-extensions/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 <https://github.com/jonathanslenders/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:

.. image :: https://github.com/jonathanslenders/ptpython/raw/master/docs/images/windows.png

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 <http://bpython-interpreter.org/downloads.html>_
  • IPython <https://ipython.org/>_

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 <http://pygments.org/>_: Syntax highlighter.
  • Jedi <http://jedi.jedidjah.ch/en/latest/>_: Autocompletion library.
  • Docopt <http://docopt.org/>_: Command-line interface description language.
  • wcwidth <https://github.com/jquast/wcwidth>_: Determine columns needed for a wide characters.
  • prompt_toolkit <http://github.com/jonathanslenders/python-prompt-toolkit>_ for the interface.

.., Build Status, image:: https://api.travis-ci.org/jonathanslenders/ptpython.svg?branch=master
:target: https://travis-ci.org/jonathanslenders/ptpython#

.., PyPI, image:: https://pypip.in/version/prompt-toolkit/badge.svg
:target: https://pypi.python.org/pypi/prompt-toolkit/
:alt: Latest Version

主要指标

概览
名称与所有者prompt-toolkit/ptpython
主编程语言Python
编程语言Python (语言数: 1)
平台
许可证BSD 3-Clause "New" or "Revised" License
所有者活动
创建于2014-09-29 10:11:42
推送于2025-06-26 13:07:39
最后一次提交
发布数42
最新版本名称3.0.30 (发布于 )
第一版名称0.29 (发布于 )
用户参与
星数5.3k
关注者数64
派生数285
提交数527
已启用问题?
问题数408
打开的问题数240
拉请求数134
打开的拉请求数22
关闭的拉请求数52
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?