前言
今天发现一个项目: ptpython.
新一代的REPL神器. 玩了一下. 毅然的ipython换成了ptipython - ptpython自带的
iython的接口. 和大家介绍下
ptpython的优点
先说几个在用ipython过程中遇到的问题吧.
- ipython在Mac下缩进问题. 每次在交互模式里面输入一个缩进的内容, 比如下面
1 |
|
看到了吧, 缩进不正确了. ptpython没有这个问题,
它的底层库[prompt_toolkit](https://github.com/jonathanslenders/python-prompt-
toolkit)实现了一个替代物
2. jedi. 我在emacs里面, jedi是标配. 其一是因为有epc, 可以和python通信, 它的自动补全和跳到函数/类定义真的很方便. 但是python交互解释器
还没有一个用它的. 这里真的感觉效果很好.
3. emacs/vim键位. 好吧我经常在用ipython的时候习惯Ctrl+x Ctrl+c
退出. 能用emacs的键位做编辑真的很爽
4. 提供一个终端的菜单, 有多个选项可以选择
5. 模式粘贴. 大家知道python有个问题: 你粘贴过来的代码不一定能运行 - 粘贴后的缩进会很奇怪的. ipython虽然有%paste
和%cpaste
. 但是有时候还是会有IndentationError
问题.
ptpython在这里独创了Paste mode
. 使用F7切换. 还可以多行编辑.
6. 可以开启多个Tab,甚至多个Tab的内容一齐显示出来. 类似vim的:split
7. 能对你写的每行程序判断是否出现语法错误.如果你的代码有问题, 下面左侧会有错误提示 - 这其实能延伸做很多检查嘛
8. ipython对查看对象的方法有一些问题, 比如这个:
1 |
|
ptpython对这样的处理都很好
9. 一个很贴心的特性:
1 |
|
- 最后一点吧. 它非常容易的被嵌入你的程序,你的解释器
1 |
|
ptipython
ptipython = ptpython + ipython
在安装了ptipython之后, 就可以使用了. 完全可以替代ipython.
类似bipython = bpython + ipython
版权声明:本文由 董伟明 原创,未经作者授权禁止任何微信公众号和向掘金(juejin.im)转载,技术博客转载采用 保留署名-非商业性使用-禁止演绎 4.0-国际许可协议
python