更改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程序生成word和PDF文档的方法
Feb 14 Python
python 链接和操作 memcache方法
Mar 04 Python
python生成二维码的实例详解
Oct 29 Python
python如何使用unittest测试接口
Apr 04 Python
Python正则表达式和元字符详解
Nov 29 Python
wxpython绘制圆角窗体
Nov 18 Python
tensorflow 获取checkpoint中的变量列表实例
Feb 11 Python
学python最电脑配置有要求么
Jul 05 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 Python
python游戏开发之pygame实现接球小游戏
Apr 22 Python
pytorch实现加载保存查看checkpoint文件
Jul 15 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
php缓冲 output_buffering的使用详解
2013/06/13 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
python实现将文本转换成语音的方法
2015/05/28 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
Pycharm简单使用教程(入门小结)
2019/07/04 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
项目经理岗位职责
2013/11/11 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
会计系毕业生求职信
2014/05/28 职场文书
环境保护建议书
2014/08/26 职场文书
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL
HTML中的表格元素介绍
2022/02/28 HTML / CSS