更改Python命令行交互提示符的方法


Posted in Python onJanuary 14, 2015

一、定制Python的交互提示符

Python的默认交互提示符为“>>>”,但它是可以定制的。

Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此文件中变量指定的执行代码。

一些Linux发布包提供了缺省的启动脚本,一般存放在其home目录,名为.pythonstartup。“Tab完成”和“命令历史”这两个功能增强了提示符应用,两者都基于readline模块。

如果没有.pythonstartup文件,可以自己创建一个。

简单例子:

# python startup file

import readline

import rlcompleter

import atexit

import os

# tab completion

readline.parse_and_bind('tab: complete')

# history file

histfile = os.path.join(os.environ['HOME'], '.pythonhistory')

try:

 readline.read_history_file(histfile)

except IOError:

 pass

atexit.register(readline.write_history_file, histfile)

del os, histfile, readline, rlcompleter

可以在http://pypi.python.org/pypi/pbp.scripts另存为.pythonstartup。

设置PYTHONSTARTUP环境变量

如果是在Linux或Mac OS X下运行Python,最简单的方法是创建启动脚本,并保存到home目录。
然后用PYTHONSTARTUP环境变量连接它,设置到系统启动脚本。例如在Bash和Korn shell,可使用.profile文件,你可以插入行,例如:
export PYTHONSTARTUP=~/.pythonstartup
在windows下,更为方便,设置PYTHONSTARTUP黄金变量即可。

二、iPython

iPython见:http://ipython.scipy.org
iPython的目标是为交互应用和研究计算创建一个全面的环境。iPython有两个主要组件:

1)一个增强的Python交互shell
2)交互式并行计算架构

iPython开源,当前版本:0.9.1。它是一个Python的增强shell。特征:

  -动态的对象检查
  -从提示符访问系统shell
  -Profiling的直接支持
  -调试方便

三、Python的distutils

Python自带了一套工具distutils,用于发布Python应用程序。它提供了:

1、一个骨架
提供标准元数据域,如作者名、License类型等等。

2、一套帮助器
明白怎样建立发布包。

distutils没有提供定义其它依赖包的功能,setuptools工具增强了这一点。

setuptools 框架,它是 Python Enterprise Application Kit(PEAK)的一个副项目。 setuptools 替换了标准的 distutils 库,并为 Python 添加了版本化的包和依赖性管理。

Perl 用户比较熟悉 CPAN,而 Ruby 用户则比较熟悉 Gems;引导 setuptools 的 ez_setup 工具和随之而生的扩展后的 easy_install 与 “Cheeseshop”(Python Package Index,也称为 “PyPI”)一起工作来实现相同的功能。另外,setuptools 还让我们可以将自己的库包装成一个称为 “egg” 的包,它与 Java? 的 JAR 文件类似,不过是用于 Python 的。

要安装setuptools,使用EasyInstall。
EasyInstall是一个包下载器和安装器。EasyInstall是setuptools工具的补充,因为它知道怎样处理包建立。

Python 相关文章推荐
使用python检测手机QQ在线状态的脚本代码
Feb 10 Python
python的即时标记项目练习笔记
Sep 18 Python
python实现ping的方法
Jul 06 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
使用IDLE的Python shell窗口实例详解
Nov 19 Python
Python基于Socket实现简单聊天室
Feb 17 Python
Python matplotlib实时画图案例
Apr 23 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
Python可以实现栈的结构吗
May 27 Python
Python使用requests模块爬取百度翻译
Aug 25 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 Python
Python的迭代器和生成器使用实例
Jan 14 #Python
python实现带验证码网站的自动登陆实现代码
Jan 12 #Python
Python三元运算实现方法
Jan 12 #Python
Python中的True,False条件判断实例分析
Jan 12 #Python
Python基类函数的重载与调用实例分析
Jan 12 #Python
Python类的专用方法实例分析
Jan 09 #Python
Python序列之list和tuple常用方法以及注意事项
Jan 09 #Python
You might like
php中看实例学正则表达式
2006/12/25 PHP
PHP 读取和修改大文件的某行内容的代码
2009/10/30 PHP
探讨如何把session存入数据库
2013/06/07 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
Python functools模块学习总结
2015/05/09 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
python实时监控cpu小工具
2018/06/21 Python
Django中的Model操作表的实现
2018/07/24 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
数学专业毕业生自荐信
2013/11/10 职场文书
安全生产责任书
2014/03/12 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
论文诚信承诺书
2014/05/23 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
Python if else条件语句形式详解
2022/03/24 Python