Skip to main content

ptpython: a better Python REPL

Latest Version

ptpython is an advanced Python REPL built on top of the prompt_toolkit library.

It works best on all Posix systems like Linux, BSD and OS X. But it should work as well on Windows. It works on all Python versions from 2.6 up to 3.4.

Installation

To install ptpython, type:

pip install ptpython

The REPL

Run ptpython to get an interactive Python prompt with syntax highlighting, code completion, etc…

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

By default, you will have Emacs key bindings, but if you prefer Vi bindings (like in the above screenshot) then run ptpython --vi.

If you want to embed the REPL inside your application at one point, do:

from ptpython.repl import embed
embed(globals(), locals(), vi_mode=False, history_filename=None)

Autocompletion

Tab and shift+tab complete the input. In Vi-mode, you can also use Ctrl+N and Ctrl+P.

There is even completion on file names inside strings:

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

Multiline editing

Usually, multi-line editing mode will automatically turn on when you press enter after a colon, however you can always turn it on by pressing F7.

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.)

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.

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

Tab pages

Suppose that you were editing a long multiline Python command, but suddenly you want to test something else in between in the same shell and go back. We have tab pages for this. Each tab has its own input buffer, but they are all evaluated in the same environment (sharing locals/globals).

https://github.com/jonathanslenders/ptpython/raw/master/docs/images/tab-pages.png

The shortcuts:

Create a new tab page

Control-T

Close current tab page

Control-D

Navigate to next tab

Control-Arrow-right (Or in Vi-mode: ‘gt’)

Navigate to previous tab

Control-Arrow-left (Or in Vi-mode: ‘gT’)

Other 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.

You love IPython?

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)

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

You are using Django?

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.

About Windows support

prompt_toolkit works still a little better on systems like Linux and OS X than on Windows, but it certainly is usable. One thing that still needs attention is the colorscheme. Windows terminals don’t support all colors, so we have to create another colorscheme for Windows.

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

Have a look at the alternatives.

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 mabye 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.

Metadata

Release files for ptpython 0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ptpython 0.9
File Size Uploaded
ptpython-0.9.tar.gz 21.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for ptpython 0.9
File Interpreter ABI Platform
ptpython-0.9-py3-none-any.whl Python 3 none any Details
ptpython-0.9-py2-none-any.whl Python 2 none any Details

Total release size: 76.4 kB

Release files / ptpython-0.9.tar.gz

Download URL ptpython-0.9.tar.gz
Size 21.3 kB
Tags Source
SHA-256 checksum
How to use checksums
80ed6fb55d2c692c4789f9794f2dedd7084146891943dc9f67a7ed84c2577b82
BLAKE2b-256 checksum
How to use checksums
f2fed80f8583b64eeba87062d0d36dd90b1fab0751bd05252a6abc7aa52631b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / ptpython-0.9-py3-none-any.whl

Download URL ptpython-0.9-py3-none-any.whl
Size 27.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b8ef4c1a1e66d016e681a04314bf64cc8f283dbda97ce9a492e0efd3554320a
BLAKE2b-256 checksum
How to use checksums
03efba0885a22ddf15dba341ffc1177c2f57693255e89d4775e55ca7e21638e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / ptpython-0.9-py2-none-any.whl

Download URL ptpython-0.9-py2-none-any.whl
Size 27.6 kB
Tags Python 2
SHA-256 checksum
How to use checksums
912536cc2922e6f875298eae7a2fb771a4aa9ba2b44a8c1d89f1cf143eaffc51
BLAKE2b-256 checksum
How to use checksums
05aade1d5e340aa3c344c6fc8b24a9cddfdec9365a302277d5c2e41c35977dc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

3.0.32

2 release files

3.0.31

2 release files

3.0.30

2 release files

3.0.29

2 release files

3.0.28

2 release files

3.0.27

2 release files

3.0.25

2 release files

3.0.24

2 release files

3.0.23

2 release files

3.0.21

2 release files

3.0.20

2 release files

3.0.18

2 release files

3.0.17

2 release files

3.0.16

2 release files

3.0.15

2 release files

3.0.14

2 release files

3.0.13

2 release files

3.0.12

2 release files

3.0.11

2 release files

3.0.10

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

3 release files

2.0.3

3 release files

2.0.2

3 release files

2.0.1

3 release files

0.41

3 release files

0.40

3 release files

0.39

3 release files

0.38

3 release files

0.37

3 release files

0.36

3 release files

0.35

3 release files

0.34

3 release files

0.33

3 release files

0.32

3 release files

0.31

3 release files

0.30

3 release files

0.29

3 release files

0.28

3 release files

0.27

3 release files

0.25

3 release files

0.24

3 release files

0.23

3 release files

0.22

3 release files

0.21

3 release files

0.20

3 release files

0.19

3 release files

0.18

3 release files

0.17

3 release files

0.16

3 release files

0.15

3 release files

0.14

3 release files

0.13

3 release files

0.12

3 release files

0.11

3 release files

0.10

3 release files

This release

0.9 This release

3 release files

0.8

3 release files

0.7

3 release files

0.6

3 release files

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page