|
|
51CTO旗下网站
|
|
移动端

1.10.1 自定义Python shell——IPython、bpython、ptpython等

《Python高级编程(第2版)》第1章Python现状,本章将会向读者介绍一下Python 3的当前现状,同时介绍Python的现代开发方法。本节为大家介绍自定义Python shell——IPython、bpython、ptpython等。

作者:张亮/阿信 译来源:人民邮电出版社|2018-01-29 18:00

1.10.1 自定义Python shell——IPython、bpython、ptpython等

Python程序员在交互式解释器会话上花费了大量时间。它非常适合测试短代码片段、访问文档、甚至在运行时调试代码。默认的Python交互式会话非常简单,并没有类似tab补全或代码内省助手(code introspection helper)的许多功能。幸运的是,对默认Python shell的扩展和定制是非常简单的。

用一个启动文件就可以配置交互式提示符。Python在启动时会寻找PYTHONSTARTUP环境变量,并执行这一变量指向的文件中的代码。有些Linux发行版提供了默认的启动脚本,一般位于主目录中,名为.pythonstartup。通常会提供tab补全功能和命令历史记录来加强提示符,这些功能是基于readline模块。(你需要安装readline库)。

如果你没有这样的文件,创建一个也很容易。下面是最简单的启动文件示例,添加了键补全功能和显示历史记录:

  1. # python启动文件  
  2. import readline  
  3. import rlcompleter  
  4. import atexit  
  5. import os  
  6.  
  7. # tab补全  
  8. readline.parse_and_bind('tab: complete')  
  9.  
  10. # 历史记录  
  11. histfile = os.path.join(os.environ['HOME'], '.pythonhistory')  
  12. try:  
  13.     readline.read_history_file(histfile)  
  14.  
  15. except IOError:  
  16.     pass  
  17.  
  18. atexit.register(readline.write_history_file, histfile)  
  19. del os, histfile, readline, rlcompleter 

1.设置PYTHONSTARTUP环境变量

如果你用的是Linux或MAC OS X系统,最简单的方法就是在主文件夹中创建启动脚本。然后将它与系统shell启动脚本中的PYTHONSTARTUP环境变量链接在一起。举个例子,Bash和Korn shell用的都是.profile文件,你可以在里面插入这样一行:

  1. export PYTHONSTARTUP=~/.pythonstartup 

如果你用的是Linux或MAC OS X系统,最简单的方法就是在主文件夹中创建启动脚本。然后将它与系统shell启动脚本中的PYTHONSTARTUP环境变量链接在一起。举个例子,Bash和Korn shell用的都是.profile文件,你可以在里面插入这样一行:

如果你用的是Windows,做法也很简单:以管理员身份在系统首选项中设置新的环境变量,然后将脚本保存在常用文件夹,不要使用特定的用户文件夹。

编写PYTHONSTARTUP脚本可能是一项很好的练习,但独自创建优秀的自定义shell却是一项很少人有时间完成的挑战。幸运的是,已经有一些自定义Python shell的实现,可以极大地提高Python交互式会话的体验。

2.IPython

IPython提供了一个扩展的Python命令行shell。它的功能很多,其中最有趣的功能如下所示。

动态对象自省。

在提示符中访问系统shell。

支持直接分析。

方便调试。
现在,IPython已经成为大型项目Jupyter的一部分,该项目提供了实时代码的交互式notebook,支持多种不同的语言。

3.bpython

bpython自称Python解释器的优秀界面。下面是项目主页上重点强调的一些功能,如下所示。

内联语法高亮。

类似Readline的自动补全,在你输入时会显示建议。

对任何Python函数都有预期参数列表。

自动缩进。

支持Python 3。

4.ptpython

ptpython是另一款高级的Python shell。在这个项目中,核心提示符应用的实现是一个叫作prompt_toolkit的独立包(来自同一作者)。这样你可以轻松创建各种美观的交互式命令行界面。

通常会将ptpython与bpython在功能上进行比较,但主要区别在于,ptpython能够与IPython及其某些语法兼容,利用这些语法可以实现一些附加功能,例如%pdb、%cpaste或%profile。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

点石成金:访客至上的网页设计秘笈(原书第2版)

有些网站看起来很清爽; 有些网站看起来很杂乱; 有些网站能让你轻松地找到资料; 有些网站让你犹如置身迷宫…… ...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊