更改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中的字典详细介绍
Sep 18 Python
Python实现的HTTP并发测试完整示例
Apr 23 Python
python实现图片批量压缩程序
Jul 23 Python
Django REST framework 单元测试实例解析
Nov 07 Python
Python文件操作函数用法实例详解
Dec 24 Python
Python模块future用法原理详解
Jan 20 Python
浅谈Python中range与Numpy中arange的比较
Mar 11 Python
PyTorch中的C++扩展实现
Apr 02 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 Python
详解Python yaml模块
Sep 23 Python
Python实现8种常用抽样方法
Jun 27 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页面防重复提交方法总结
2013/11/25 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
Dojo 学习要点
2010/09/03 Javascript
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
python对日志进行处理的实例代码
2018/10/06 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
销售人员求职的自我评价分享
2014/03/15 职场文书
贺卡寄语大全
2014/04/11 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
金融管理专业求职信
2014/07/10 职场文书
生活部的活动方案
2014/08/19 职场文书
十八大宣传标语
2014/10/09 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
Android Rxjava3 使用场景详解
2022/04/07 Java/Android
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang